虽然没有像 Requests 那样贴心地提供中文版,但也同样足够人性化。
最近总是把字符串的操作混淆,以为一个字符串直接像数组一样操作就可以得到其中的字符。 Sring s1 = "abcde"; 那么 s1[0] = 'a' ? 这是错误的。...String类内部的value是一个字符数组 private final char value[]; 可以看到是private的,而String类没有提供直接访问与操作这个数组的方法 应该用 char
就不会发生存储溢出问题 优点:插入和删除速度快,保留原有的物理顺序,比如:插入或者删除一个元素时,需要改变指针指向即可 缺点:查找速度慢,因为查找时,需要循环链表访问 4.使用redis搭建分布式系统时如何处理网络延迟和网络异常...5种数据结构 string 使用string时,redis**大多数情况下**并不会理解或者解析其含义,无论使用json、xml还是纯文本在redis看来都是一样的,只是一个字符串,只能进行strlen...field [field ...] 5 HGETALL key 6 HKEYS key 7 HDEL key field [field ...] list 使用list时,value就是一个string数组...,操作这组string时,可以像对待栈一样使用pop和push操作,但是这个栈两端都能进行操作;也可以像对待数组一样使用一个index参数来操作。...list的操作命令略杂,主要分为两类:L开头的和R开头的,L代表LEFT或者LIST,进行一些从列表左端进行的操作,或者一些与端无关的操作;R代表RIGHT,进行一些从列表右端进行的操作。
当这种情况发生时,我们如何对待我们的机器将很重要;哲学家和学者们已经在想象机器人和智能机器可能应该--并且被赋予--某种权利的时代。 这些不一定是人权。...如果有一天我们有了有知觉的机器人,我们应该对他们承担同样的道德和法律责任,就像我们对待某些动物一样。...达林说:“人们下意识地把机器人当作生物对待,即使是在有意识的层面上,在理性的层面上,我们也完全理解它们不是真实的。” 虽然普莱奥无法感受到痛苦,但达林认为,我们应该关注如何对待这些实体。...图灵的看法是,我们永远不可能确切地知道一台机器的感受或体验--所以我们最好的选择就是看看我们是否能像跟人类说话一样与它进行对话(我们现在称之为图灵测试)。...我有责任像对待人类一样去对待它。 显而易见的结论是,权利不应以生物学为基础,而应建立在更基本的基础上:人格。 如果我们最终承认某个智能机器是一个人,那么我们有义务赋予它什么法律权利呢?
五种数据结构 (1) Strings (字符串结构) (2) Hashes (哈希结构) (3) Lists (列表结构) (4) Sets (集合结构) (5) Sorted Sets (有序集合结构...关键字: set , get 1.1.1 value是可序列化的字符串 大多数情况下,Redis 会把 value 作为字节数组对待。...1.3 Lists (列表结构) 它的 value 以数组形式的 存储。...关键字: lpush , rpush, ltrim,llen 你可以向数组插入值,获取第一个或者最后一个值,以及操作指定索引位置上的值。...1.5 Sorted Sets (有序集合结构) 有序集合结构就像集合结构一样,但是有权重(score)。 关键字: zadd ,zcount, zrevrank 权重提供了排序和排名功能。
内置的len和cap函数分别返回slice的长度和容量golang中通过语法糖,使得我们可以像声明数组一样,自动创建slice结构体。...如果切片操作超出cap(s)的上限将导致一个panic异常,但是超出len(s)则是意味着扩展了slice,因为新slice的长度会变大:字符串的切片操作和[]byte字节类型切片的切片操作是类似的。...都写作x[m:n],并且都是返回一个原始字节序列的子序列,底层都是共享之前的底层数组,因此这种操作都是常量时间复杂度。...一个nil值的slice的长度和容量都是0,但是也有非nil值的slice的长度和容量也是0的与任意类型的nil值一样,我们可以用[]int(nil)类型转换表达式来生成一个对应类型slice的nil值...= nil如果你需要测试一个slice是否是空的,使用len(s) == 0来判断除了文档已经明确说明的地方,所有的Go语言函数应该以相同的方式对待nil值的slice和0长度的slice。
2、对待代码和设计不要情绪化 代码就像纸巾:它有用你就用,没用了就扔掉。几乎我们所有人都认为代码复用( code-reuse )很重要,尽管确实如此,但是这也不意味着要像养孩子那样去对待代码。...代码没有感觉也不会在乎,它们会像法兰克斯坦( Frankenstein )怪物那样攻击你。代码只是一堆字节,是一种责任( liability )。...4、君子善假于物 优秀的程序员知道如何能更高效的完成任务,如何更能有效的解决问题。当遇到问题时,不钻牛角尖,善于利用外部工具解决自己的问题,特别是能熟练应用搜索引擎。...Object Oriented Programming )就是一种语言模型,正如函数式编程( Functional programming )或声明式编程( Declarative programming )一样...此外,虽然有很多语言都跟随同一个主流编程模型(如面向对象的编程),但它们都只介绍自己的改进,例如递推式构造列表( list comprehensions )、泛型( generics )、鸭式分类( duck-typing
前言: 开学后,跟预想的一样,开学第一天我们就开了Python,虽然之前早就预料到了,但对于一直学Java的我来说,内心还是有一些涟漪的。总归还是要接受的,还不如振作起来,认真对待。...我们一起学Python 虽然学习Python,但我的主攻方向还在Java上,python只是学习一些基础,所以我不会像写Java博客那样每个知识点写特别细,我会把重要的规则记录下来,学习抓重点,之前说过...,学编程主要学的是编程思想,编程思想是相通的,学好编程思想后,学习新的编程语言,你只需学习那些不一样的部分,比如说一些语法规则,这也是我要记录的重点,好,开始学习。...注:像Java这样的编程语言里必须在声明变量前先定义好其类型,因此这类编程语言叫强类型语言,而Python则不同,没有这么复杂,因此称为弱类型语言。...列表(数组) ? 现在我们能看到有刘关张三兄弟的字符串,那现在我们如果我们想单独把关羽提出来该怎么办呢?
当这种情况发生时,我们如何对待我们的机器将变得至关重要。哲学家和学者们已经对这方面开始设想,未来机器人和智能机器或许应该得到某种权利的时代。 但这些并不一定全是人权。...加拿大多伦多约克大学的哲学家克里斯汀· 安德鲁斯说,“如果你有一台能够像人类一样自主行动、或者有自我意识的电脑或机器人,我想我们很难说它不是一个人。” 这就引出了一系列难题。...我们应该如何对待有一定意识程度的机器人呢?如果我们确信人工智能有能力去承担情感上的痛苦,或者真实地感到痛苦,那我们该怎么看待它?那么把它关起来就等同于所谓的谋杀吗?...从图灵的角度来看,我们永远无法确定机器是否拥有与人类类似的感受和体验,所以我们最好的办法就是看看机器人能否像人类一样继续进行对话(我们现在称之为图灵测试)。...对于安德鲁来说,关键问题在于如何让该实体赋予权力来让自己的利益得到认可。当然,我们要确定它们的兴趣是什么,这可能是件棘手的事。就像来自某个国家的人很难理解来自不同文化国度的人的欲望一样。
本文接下来的内容也将围绕这两个类来展开,先建立一个感性的认识,再详细分析它们的使用及原理,最后我们会看一下 Retrofit、OkHttp 是如何使用 Okio 的,以及 Gzip 压缩这个功能是如何设计实现的...,同理 Sink 和 OutputStream 也可以等同对待。...Buffer 是一个可变的字节序列,就像 ArrayList 一样。我们使用时只管从它的头部读取数据,往它的尾部写入数据就行了,而无需考虑容量、大小、位置等其他因素。...它内部使用一个双向 Segment 链表来保存数据,Segment 是对一小段字节数组的封装,保存了这个字节数组的一些访问信息,数据的移动通过 Segment 的转让完成,避免了数据拷贝的开销。...而且 Okio 还实现了一个 Segment 对象池,以提高我们分配和释放字节数组的效率。
Span span = stackalloc byte[100]; 下面的代码片段显示了如何使用字节数组创建 Span、如何将整数存储在字节数组中以及如何计算存储的所有整数的总和。...Span 可以包装整个数组,因为它支持切片,所以可以让它指向数组中的任何连续区域。下面的代码片段显示了如何使用 Span 指向数组中由三个元素组成的片段。...内存对于表示非连续缓冲区中的数据非常有用,因为它允许开发者像对待单个连续缓冲区一样对待它们,而不需要进行复制。...因此,开发者可以将它放在堆上,在集合中或异步等待中使用它,将它保存为字段或装箱,就像对待任何其他 C# 结构一样。.../IList / ICollection 字节数组集合(byte [])和 ArraySegment。
上文中我们从数据库查出的数据并不是我们常见的数组形式, ? ?...这就要了解下 Collections 对象,在 laravel 中 collection 是比数组更高等般的存在,我们可以像对待数组一样的来操作 collection,而且它还能以链式操作的方式便捷易读的处理数据...collection $collect = collect($array); # 打印 $collect dump($collect); # 然后就能像数组一样取值循环了...过滤为假的值 implode() 用 - 连接 dump($collect->forget(2)->filter()->implode('-')); } 两种方式打印出来的结果是一样的...up 17年刚刚接触 laravel 的时候不知道 collection 是个啥,只知道数组数据库查出来的时候都懵逼了百度半天才知道 ->toArray() 可以把 collection 转成数组,每次都是转成数组玩
) 获取统一变量 查询程序中 活动统一变量的列表(/ 数量); 获取 程序中 最大统一变量名称的字符数量(最大长度): ?...) 第一个分量在最低偏移处; (行优先、列优先的意义) C列R行 的 列优先矩阵 被 当成 C浮点列向量 的一个数组对待, 每个向量包含R个分量。...(一个列有R行) 相类似, R行C列的行优先矩阵被 当成 R浮点行向量 的一个数组对待, 每个向量包含C个分量。...所有实现中最小的支持数量为16KB; 如果违反了这些限制,程序就无法链接; 程序示例, 说明如何用前面描述的命名统一变量块LightTransform【std140例程处】 建立一个统一变量缓冲区对象...index | (准备要跟 程序实例中的统一变量缓冲区绑定点 进行绑定的)绑定索引】, 而实际上 代码运用中, 传入的数值 跟传给glUniformBlockBinding的API 第三个参数一样
反斜杠置换 用\表示反斜杠置换,和其他语言一样,把特殊字符当作普通字符对待 ? \t为tab \n换行 ? 其他符号 ""对双引号中$和[]会进行变量置换和命令置换 ?...变量、数组和列表 变量 定义:set 变量名 变量值 引用:$变量名 ? 例题:假设我们想打印变量varible,后面跟一个“_1",会发生什么? ?...数组 定义:set 数组名 (元素名) 值 ? 取值:$数组名 (元素名) ? 用array指令获取数组信息 ?...lindex 语法格式 lindex 列表 n 返回列表的第n个元素(从0开始计数) ? 如何得到list1 {a b c d f}的最后一个元素? ?...如何得到list1中的最小值 ? 运算 数学运算 a+b a-b a*b a/b 逻辑运算 a<=b a>=b a==b a!
ABI 规范 ABI 规范指出了在调用智能合约函数时如何构建发送到 "交易"中作为 "data" 的字节数据。字节数据包含 2 个主要部分: 函数选择器:前 4 个字节。...JSON ABI:一个 json 数组,包含与你的智能合约相关的 public 和 external 函数、事件和错误的列表。...Inputs(参数) :包含每个函数输入参数的名称、类型和组件的对象数组。 Outputs(返回值) : 就像输入参数一样,但对于函数的输出参数。...从那一刻起,你可以像对待其他对象一样直接调用合约的方法。...就可以像其他对象一样调用合约的方法了。
的 issue 中给出了答案:lodash 的 slice 会将数组当成密集数组对待,原生的 slice 会将数组当成稀疏数组对待。...密集数组VS稀疏数组 我们先来看看犀牛书是怎样定义稀疏数组的: 稀疏数组就是包含从0开始的不连续索引的数组。通常,数组的length属性值代表数组中元素的个数。...源码总览 当然,除了对待稀疏数组跟原生的 slice 不一致外,其他的规则还是一样的,下面是 lodash 实现 slice 的源码。...length : end 这是处理 end 比数组长度大的情况,如果被数组长度大,也会截取到数组的末尾。...这里没有像 start 一样控制 end 的向前倒数完后是否为负数,因为后面还有一层控制。 获取新数组的长度 length = start > end ?
Mail Extensions 或 MIME 类型 )媒体类型(通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式...互联网号码分配机构(IANA)是负责跟踪所有官方MIME类型的官方机构,您可以在媒体类型页面中找到最新的完整列表。...浏览器会像对待 设置了HTTP头Content-Disposition 值为 attachment 的文件一样来对待这类文件。
AI 的发展速度超乎想象,它们变得和人类还有一些动物越来越像,它们是会后空翻的人形机器人、下棋超级厉害的机器人、被赋予公民身份的机器人还有会撒娇的机器狗等等。...很难说未来 AI 是不是也能像人一样产生意识,所以现在有一种争论已经开始在社会上蔓延开来。它涉及的核心问题就是,AI 是不是应该被赋予权力。 比如我们应该如何对待一个有意识的机器人?...但问题是,如果未来机器人像人一样拥有意识,彼时,你再虐待它算不算犯罪呢?怎么才能判断机器人是不是有意识? 其实,计算机科学先驱艾伦·图灵半个世纪前就思考过这个问题。...亚特兰大的法学教授马克·戈德费德(MarkGoldfeder)也得出了类似的结论:如果一个实体表现出人类的某些特质,人类就不能虐待它,并且有责任像对待人类一样对待它。
;如果源码文件是GBK编码, 操作系统(windows)默认的环境编码为GBK,那么编译时, JVM将按照GBK编码将字节数组解析成字符,然后将字符转换为unicode格式的字节数组,作为内部存储。...,同样的字符串,最后得到的unicode字节数组是完全一致的,显示的时候,也是转成GBK来显示(跟OS环境有关) 乱码如何产生?...的方式,这里指定为UTF-8,即把bytes的内容当做UTF-8 格式对待。...,即他认为一个字节是一个字符, 那么这种转换不会对原来的字节数组做任何改变,因为字节数组本来就是由单个字节组成的,如果之前用GBK编码,那么转成iso-8859-1后编码内容完全没变, 则 s.getBytes...unicodeToUtf8 (String s) { return new String( s.getBytes("utf-8") , "utf-8"); } UTF-8 转GBK原理也是一样
通过TXLiteAVSDK的 PLAY_EVT_GET_MESSAGE 消息事件获取的是一个8字节的64位时间戳。以下介绍了如何把这个8字节的64位时间戳转换成Unix时间戳。...int的区别在于,下面的转换中要将先将数组中的元素转换成long型再做移位操作, // 若直接做位移操作将得不到正确结果,因为Java默认操作数字时,若不加声明会将数字作为int型来对待,此处必须注意...转换Unix时间戳 long timeStamp = byteArrayToInt(param.getByteArray(TXLiveConstants.EVT_GET_MSG)); /** * 将8字节的...byte数组转成一个long值 */ public static long byteArrayToInt(byte[] byteArray) { byte[] a = new byte[...int的区别在于,下面的转换中要将先将数组中的元素转换成long型再做移位操作, // 若直接做位移操作将得不到正确结果,因为Java默认操作数字时,若不加声明会将数字作为int型来对待