1、Go是编译型语言,但编译速度非常快,让人觉得是一门解释型语言。
2、Go的变量声名为 var name type,例如var a int。变量的类型放在变量名之后。
3、Go的声名和赋值是分开的。但如果在函数内可使用a := 15这种形式来同时对变量声名和赋值,但是变量的类型是由所赋予的值推理出来的。
4、Go的变量都自动初始化为null.
5、多个var声名可以成组,例如var (x int
y bool
)
6、有相同类型的变量同样可以在一行内完成声名,例如var x, y int,变量名之间用','隔开,类似的x,y := 2,3也是可以的。
7、Go中有一种特殊的变量‘_’,任何赋予它的值都会被丢弃。
8、Go对任何声名了但未使用的变量报错。
9、混用变量类型是非法的
10、const用来声名常量,例如cosnt x=1,与var相反(代表变量)。常量只能是数字,布尔值或者字符串。在声名常量时可以指定常量类型,例如const x string = "0"
11、iota函数用来获取枚举值,从0 开始
12、Go中处处编码都是UTF-8,双引号包裹的字符序列为string类型变量,而单引号包裹的则是一个字符,而不是string
13、Go可的字符串是不可修改的,可以通过转换了rune数组进行改变,再将结果数组转化为string
14、Go支持原始字符串,以``标识
15、Go是原生支持复数的,两种格式complex128(64位虚部)、complex64(32位虚部)
16、Go加入了内建的错误类型error,例如 var a error定义了一个error类型的变量,初始为nil
17、Go不支持对运算符或方法的重载
18、Go支持goto语句
19、Go中没有逗号表达式,++ --等均为语句而不是表达式,因此在一个 for中如果想使用多个变量必需使用平等赋值。
例如 for i ,j := 0, 11; i<j; i,j := i+1, j-1 {
}
20、支持break和continue,并且支持标签break ,可在多层嵌套循环内break指定层次循环
21、range返回键值对迭代器,可用于slice,、array、string、map、channel
有疑问加站长微信联系(非本文作者)