使用var命令声明一个或者多个变量 格式:var identifier type 注意的是,与大部分语言不同的是,类型的位置在后面。这也是go一贯的写法,类型名总在变量名,形参名,函数名的后面
// 类型可以省略,因为如果初始的时候有赋值的话,go会自动推测类型
:= 语句是申明并初始化变量的简写 var f string = "short"等同f := "short"
可以用小括号将一组要声明的变量包起来:
var ( a int b string c bool d float e string = "have a nice day ~" )而定义时,可以不给赋值,变量会被默认初始化为0, “”, false, 0.000000等默认值
const identifier [type] = value
类型可以省略,因为会自动根据value来推导类型 常量必须被初始化一个值
const ( a int = 100 b // b 会等于 a c int = 200 d // d 会等于 c )iota在const关键字出现时将被重置为0,而后每一行会递增一次,常用来简化定义。
const ( a = iota // b // 等同于 b = iota c // c = iota d // d = iota )上面的代码,因为如果一行没有赋值,就等于跟上一行是相同的赋值,所以上面的代码等同于每一行都是赋给了iota的值。然后iota 等于把a赋值为0,然后每一行会递增的得到了1,2,3
const ( a = 2 << iota b c d ) // 结果 // a = 0 // b = 4 // c = 8 // d = 16在常量表达式里面,我们可以使用iota来实现类似枚举的递增效果。
type Weekday int const ( Monday Weekday = iota + 1 Tuesday Wednesday Thursday Friday )这样我们就实现了一个类似枚举类型的效果。
如果我需要的一组值是0,1,2,4,5没有三,那么其实我们可以跳过不想要的值
type Weekday int const ( Monday Weekday = iota + 1 _ Wednesday _ Friday )比如我们只关心周一周三周五的话,我们可以使用下划线跳过一些值。
更详细的golang中使用iota的用法和例子
go有字符串,整形,浮点型,布尔型等等基本类型
int8,int16,int32,int64,uint8,uint16,uint32,uint64,int,uint,rune,byte,uintptr 后面有位数的代表了bit数量,前面u开头的是无符号数,没有后面的位数与cpu位数有关 rune等同于int32,byte等价于int8 uintptr用来保存一个指针的大小用于底层编程 所有整形的默认值都是0 强类型语言,虽然这些都是整形,但是不能直接相互赋值,需要显示类型转换。(int)
float32和float64
complex64和complex128
复数比较时,只有实部虚部完全相等才是等于。
只有true false两种可能的值的类型 使用bool关键字声明,可以进行逻辑运算,未赋值的默认值为false,格式化输出占位符是%t 注意在进行与操作的时候有与短路:第一个表达式为false时不会计算第二个表达式;同意存在或短路,第一个表达式为真时不会计算后一个表达式;
有两种表示方式,双引号,反引号,反引号包裹的字符串不支持控制转义字符,会原样输出。 len返回字节数,也可以用[i]访问i字节 +操作可以直接用来衔接字符串 切片,一种类似数组的结构,字符串的一些方法会返回slice,更灵活
参考学习
