1.变量声明,初始化与赋值
2.变量可见性规则;
3.常量,常量的声明和iota的使用
变量声明:var 变量名 变量类型 = 所赋值(可无)
分组声明:var(
变量名 变量类型
变量名 变量类型
)
同一行声明多个变量和赋值:var a,b,c int(可以省略,go会自动判断是什么类型) = 1,2,3 或者 a,b := 1,2
全局变量的声明必须使用关键字,局部变量则可以省略
也可以 a,b,c := 1,2,3(声明并赋值,只能用在函数体内部,不能用作全局变量)
**********特殊变量下划线“_”;(可以把这个下划线看成一个垃圾桶,在接下来代码中不需要这个变量)
1.go语言不存在隐式转换,类型转换必须是显示的;
2.类型转换只能发生在两种兼容类型之间(比如int和bool之间,就是不能转换的)
3.类型转换格式:<变量名称> := <目标类型>(<需要转换的变量>)
变量的可见性规则:
大写字母开头的变量,是可以导出的,也就是其他包是可以读取的,就是公有变量;
小写字母开头的,就是不可导出的,是私有变量
常量:
1.常量定义形式和常量类型范围;
2.特殊常量iota的使用:
常量定义从形式上可以分为显式和隐式;
显式:const identifier type = value
隐式:const identifier = value(通常叫做无类型常量)
常量可以使用内置表达式(即不能是自定义函数)定义,例如 len(),unsafe.Sizeof()等; const alen = len();
常量范围:目前只支持布尔类型,数字型(整数型,浮点型和复数类型)和字符串类型;(不支持派生类型)
1.iota在const关键字出现时将被重置为0;
2.const组中每新增一行常量声明将使iota计数一次;
3.iota常见使用方法:
1.跳值使用法;(const(a =iota b =iota _ c =iota) 加一个下划线,c的值就是3了)
2.插队使用法;(const(a =iota b =3.14 c =iota) ,c的值就是2了)
3.表达式隐式使用法;(const(a =iota *2 b c ) ,b的值就是2,c的值就是4了,当你没有给b和c赋值表达式的时候,就会继承上面的表达式)
(const(a =iota *2 b=iota *3 c d ) ,a的值还是0,b的值就是3,c的值就是6了,d的值就是9)
4.单行使用法;const(
a,b =iota,iota+3
c,d
e =iota
)