注释
// 单行注释
/*
多行注释
*/
25个关键字

36个预定义标识符

空格
变量的声明必须用空格隔开
var age int变量的声明
只声明变量,不赋值将返回各类型的空值
数值类型(包括complex64/128)为 0
布尔类型为 false
字符串为 ""(空字符串)
以下几种类型为 nil:
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
所以说,go中的空并不能直接等于nil
自动推导类型
var i = 1
fmt.Printf("%T",i) >>> int
i := 1
fmt.Printf("%T",i) >>> int
这两种方式是相同的
多变量声明
//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断
vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误
常量
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
const identifier [type] = value 可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。 显式类型定义: const b string = "abc" 隐式类型定义: const b = "abc" 常量还可以用作枚举: const ( Unknown = 0 Female = 1 Male = 2 ) 数字 0、1 和 2 分别代表未知性别、女性和男性。运算符
算术运算符
```++ -- 自增自减 增量是1
var a = 10
a--
a >> 9
a++
a >> 10
- ###关系运算符

跟python差不多
`注意,只能同类型的进行关系比较,如果int 类型与string类型进行比较,编译不过,提示
(mismatched types int and string)`
- ###逻辑运算符

&& >> and
|| >> or
! >> 非 (!true) >>false
```
位运算符


异或的理解:按位异或运算符,参与运算的两个二进制对应位进行异或,两数位相同,异或得0,两数位不同时,异或得1.
赋值运算符

其他运算符


条件语句

go没有三目运算符,所以不支持?:形式的条件判断


swithch






匿名变量
就是没有名字的变量,在使用多重赋值的时候,如果不需要在左侧接受变量,就可以使用匿名变量
函数名还可以有空格?

被折叠的 条评论
为什么被折叠?



