对于如何定义go语言变量、常量、类型的简单学习
变量
使用var定义变量
var a int = 1
var a = 1
var a int
- 声明变量时可以省略类型, 也可以省略初始值,但是两者必须有一个
- 没有类型可以通过初始值进行推导,对于没有明确的初始化的变量,则初始化成对应类型的空值
同时声明多个变量–可以是不同的类型
var a , b , c int //三个变量同时声明成int
var a , b , c = ture, "string", 1.0 //不标注类型时, 通过不同的初始值声明多个不同类型的变量
也可通过表达式或返回值来定义变量
var a = 3+4
var b = fun()
支持多重赋值
i , j = j , i //这样就可以交换两个值
使用使用:=定义变量
短变量只能用来声明和初始化局部变量
a := 1 //根据初始值自动推导类型
a , b = 2 , 1.2 // 同时声明多个
- var 声明的变量 可以不初始化, 而:= 简单,方便所以用于局部变量的声明
- ‘=’ 是赋值 而’:='则是声明
a , b:= 1, 2
c, b := 2, 3 //b已经声明过了此时对于b就相当于赋值
⚠️注意: 每次使用短变量声明时必须最少有一个是新的要生命的,否则会编译报错
- var定义的变量可以在函数的内部 和函数外进行变量的定义, 而使用:= 的话只能在函数的内部
- 定义的变量必须要使用,不然就会报错
常量
声明常量
//声明一个int型常量 两种声明方式
显示:const a int = 1
隐式:const a = 1
- 常量必须要有确定的值,要在编译期间就可确定
- 支持并行赋值
const a,b,c = 1,2.0,"c"
常量用作枚举
const{
first = 0
second = 2
third = 3
fourth //此时的值沿用上一层 为3
fifth = 5
}
- 定义枚举时也可使用 itoa 实现递增
const {
a = itoa // 此时a=0
b = itoa // b = 1 显示使用itoa
c // c = 2 隐式的使用itoa 同样试自增
d,e,f = itoa ,itoa,itoa //d=e=f=3 此时的itoa必须要写3 个
g = "w" //g = w 此时itoa 为 4
h // h = "w" 沿用上一层 此时itoa 为5
i = itoa // i = 6
}
- const 声明的常量每次刚开始的itoa 被赋值为0 ,如果上一行是itoa ,那么下一行也就是itoa ,但是itoa有自增效果,每过一行自增一次
内置变量类型
- 布尔类型 bool
- 字符串 string
- 整形
- int\int8\int16\int32\int64 有符号的整形的长度根据后面的数字有关
- uint\uint8\uint16\uint32\uint64 无符号的整形
- uintptr 指针的类型 长度和操作系统有关
- 字符型 byte 8位 rune 32位
- 浮点型 float32\float64
- 复数类型 complex64(实部和虚部的大小分别为32)、complex128 (实部和虚部的大小分别为64)