基本数据类型

数组(array)

 

 

切片(slice)

  • 声明和初始化

  切片只有 3 个组件:

  • * 指向基础数组中第一个可访问元素的指针。 此元素不一定是基础数组的第一个元素  array[0] 。
  • length 切片的长度。 切片中的元素数目。
  • capacity 切片的容量。切片容量仅指出切片可扩展的程度,即切片开头基础数组尾端之间的元素数目。

  从切片  quarter2 创建扩展切片,如下例所示

 

  注意, 长度与容量的区别:切片长度指切片实际包含的元素数量;切片容量指切片可扩展的程度。

  在上例中,切片长度为 3 个元素,但容量为 9,原因是基础数组有更多元素或位置可供使用,但对切片而言不可见。 例如,如果你尝试打印类似  fmt.Println(quarter2[3]) 的内容,会出现以下错误: panic: runtime error: index out of range [3] with length 3 。

 

  • 创建切片的副本

  Go 具有内置函数  copy(dst, src []Type)  用于创建切片的副本。 例如:

  为何要创建副本? 因为更改非副本切片中的元素时,基础数组将随之更改。

  注意, copy之后, 切片不会继承基础数组的capacity.

 

字符串遍历

byteuint8runeint32

Tips:

Unicode 和 ASCII 一样,是一种字符集,UTF-8 则是一种编码方式.

Unicode 从 0 开始,为每个符号指定一个编号,这叫做「码点」(code point).

UTF-8 是一种变长的编码方法,字符长度从 1 个字节到 4 个字节不等, 其中一个汉字占用3个字节.

总结:

runerange