尚硅谷-韩老师Golang视频
1. 值类型
变量直接存储值,内存通常在栈中分配。
基本数据类型 int 系列、float系列、bool、string、数组、结构体struct。
2. 引用类型
变量存储的是地址,该地址对应的空间是真正存储的数据(值)。内存通常在堆中分配。当没有任何遍历引用这个地址时,该地址对应的数据空间就变成了一个垃圾。
指针、slice切片、map、管道channel、interface。具体后面再学习。
3. 关于变量命名
3.1 命名规则
1)由26个字母(Unicode字母)、下划线、数字组成
2)数字不能开头
3)严格区分大小写
4) 标识符不能包含空格
5) 下划线“_”本身在Go中是一个特殊的标识符,称为空标识符。仅用作占位,不能作为标识符。
6)不能以系统的保留关键字作为标识符(25个)
注意:int 是预留关键字,事实上是可以作为标识符的,但是强烈建议不使用。
所以,还包括预定义的名字,主要对应内建的常量、类型和函数。
3.2 标识符命名注意事项
1)名字的开头字母的大小写决定了名字在包外的可见性。如果一个名字是大写字母开头的(译注:必须是在函数外部定义的包级名字;包级函数名本身也是包级名字),那么它将是导出的,也就是说可以被外部的包访问,例如fmt包的Printf函数就是导出的,可以在fmt包外部访问。包本身的名字一般总是用小写字母。首字母大写是公开的,首字母小写是私有的。
2)在习惯上,Go语言程序员推荐使用 驼峰式 命名,当名字有几个单词组成的时优先使用大小写分隔,而不是优先用下划线分隔。
3)名字的长度没有逻辑限制,但是Go语言的风格是尽量使用短小的名字。
4)保持package的名字和目录保持一致,尽量采用有意义的包名。
4. 运算符
4.1 算数运算符
需要注意的细节:
1)对于除法“/”,整数之间做出发,只保留整数部分。如:x :=19/5 结果是3。
2)Golang的自增自减只能当作一个独立语言使用,不能像下面这种形式使用。
3)Golang的++ 和 —— 只能写在变量的后面,也就是说不像C/C++这种含有前置与后置的区别。
4.2 关系运算符
4.3 逻辑运算符
4.4 赋值运算符
赋值运算符特点:
1)运算顺序从右向左
2)赋值运算符的左边只能是变量,右边可以是 变量、表达式、常量值