Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言

为了获得最佳的运行性能,GO语言被设计成一门静态编译型的语言,而不是动态解释型语言。

记录:

  1. Go 单引号不能用来表示字符串类型。
  2. 变量的命名规则遵循骆驼命名法,即首个单词小写,每个新单词的首字母大写,例如:numShips 和 startDate。但如果你的全局变量希望能够被外部包所使用,则需要将首个单词的首字母也大写。
  3. 函数 fmt.Print 和 fmt.Println 会自动使用格式化标识符 %v 对字符串进行格式化,两者都会在每个参数之间自动增加空格,而后者还会在字符串的最后加上一个换行符。
  4. Go 没有三目运算符, 即使是基本的条件判断,依然需要使用完整的 if 语句。
  5. Go 中,数组 是一个具有编号且长度固定的元素序列。
  6. Go 中,相较于数组,用得更多的是 切片(slice)。slice 和数组是不同的类型,但它们通过 fmt.Println 打印的输出结果是类似的。
  7. Go 语言中的数组是一种 值类型,切片是一个引用类型。
  8. map(集合) 是 Go 内建的关联数据类型 (在一些其他的语言中也被称为 哈希(hash) 或者 字典(dict) )。
  9. 在Go中字符串是不可变的。
  10. 大写字母开头的变量是可导出的,也就是其它包可以读取的,是公有变量;小写字母开头的就是不可导出的,是私有变量。大写字母开头的函数也是一样,相当于class中的带public关键词的公有函数;小写字母开头的就是有private关键词的私有函数。
  11. 类型可以是基本类型,如:int、float、bool、string;结构化的(复合的),如:struct、array、切片 (slice)、map、通道 (channel);只描述类型的行为的,如:interface。结构化的类型没有真正的值,它使用 nil 作为默认值。
  12. 符号 * 可以放在一个指针前,如 *intP,那么它将得到这个指针指向地址上所存储的值;这被称为反引用(或者内容或者间接引用)操作符;另一种说法是指针转移。对于任何一个变量 var, 如下表达式都是正确的:var == *(&var)。
  13. 假设 s 是一个字符串(本质上是一个字节数组),那么就可以直接通过 c := []byte(s) 来获取一个字节的切片 c 。另外,您还可以通过 copy() 函数来达到相同的目的:copy(dst []byte, src string)。