风格

0. 简洁,不能有多余的东西
1. 去掉了if while 的(),变得更加简洁
2. case 自带的 break,匹配之后就会自己跳出
3. 不能连续出现两个关键字(如 for var)
4. 和java/c一样采用的是值传递的方式传递参数
5. 想要传参修改值,就传递指针

输出

fmt.Println(,,,);//实现了拼接的功能
fmt.Printf();    //格式化输出
println();

输入

fmt.Scanln();

变量

0. 变量的后面接变量的类型
1. _ 这个变量不需要声明(声明不会报错),系统编译的时候,会自动忽略,接收的值不能打印(直接报错,算是为多个返回值支持而做的)
2. 申明的变量必须使用,否则就直接报错
3. 定义变量 var m int32 = 1(此时的类型int32可以不写,编译器自己识别)
4. var仅仅用来申明变量,函数使用的是func
5. 申明的变量有这默认值
6. 首字母大写是公开的, 首字母小写是私有的;没有private,public等关键字

运算符

1. go语言的运算符来自C语言
2. go不支持三目运算符,并且 ++ -- ,不能在后面再接其他的表达式
3.  Golang 的自增自减只能独立运算使用,不能和其他的运算符复合使用

关键字

1. go没有class,但是有struct
2. switch不需要break
3. switch和case后面后面接的是表达式(常量,变量,表达式等),case后面的表达式可以有多个,并且使用,来隔开;而不是通过多个case来拼接
4. func关键字:用来声明函数,其他部分和变量基本一致,如果申明多个返回值,必须使用括号括起来
5. defer:defer放在一个函数里面使用,使用了栈的机制;defer定义异常捕获的时候,需要在异常发生之前定义
6. range: 用来遍历的关键字
7. select:
8. go语言没有void这个关键字,如果返回空的话,不设置返回值就行

属性

1. go不和java一样有着private default protect default 关键字
2. 如果是首字母小写就是private;大写就是public

括号

1. if等后面的()不需要,但是{}无论如何都必须有

内置函数

1. len
2. panic : 一执行就会终止整个函数
3. recover : 捕获异常
4. cap : 获取某个引用类型的容量
5. 内置函数都是大驼峰的形式

数据类型

1. 迷惑性数据类型:数组(值)和切片(引用)
2. string 属于基本数据类型(值类型),是由单个字节拼接起来的,基本数据类型不可再分,因此不能单独对字符串的某个byte进行修改
3. 没有专门char的类型,使用byte(uint8)来保存
4. 浮点数默认为float64
5. bool占用一个字节
6. go语言中字符串是不可变的,不能通过下标来修改字符串的某个字符的值
7. 字符串支持双引号和``
8. 数据类型不支持自动转换,需要显式转换(和c/java不一样)
9. 值类型:基本数据类型 int 系列, float 系列, bool, **string** 、**数组**和结构体 struct
10. 引用变量的值存储的是一个地址(指针)
11. 和C语言一样,不能直接表示一个二进制的数字
12. 和dart一样rune这个类型表示的是int32
13. 数组的长度也是数组的一部分