变量声明
// 先声明再赋值
var v1 int
v1 = 1
// 声明且赋值
var v2 = 2
// 声明且赋值2
v2_1 := 21
// 多变量赋值
var v3,v4,v5 = 3,"abc",5.0
// 多变量赋值2
v3_1,v4_1,v5_1 := 3,"abc",5.0
// 多变量声明
var v6,v7,v8 int
// 全局变量声明方式
var(
v9 = 100
v10 = "global"
v11 = 1.1
)
类型转换
var i int32 = 0
// int32 -> float
var fi float32 = float32(i)
// int32 -> int8
var i8 int8 = int8(i)
// int32 -> int64
var i64 int64 = int64(i)
// float -> string
var str string
str = fmt.Sprintf('%f',fi)
// bool -> string
var b bool = true
str = fmt.Sprintf('%t',b)
// 另一种方式转成字符串
str = strconv.FormatInt(int64(i8), 10)
// string -> bool
// 转换失败会赋一个默认值
b, _ = strconv.ParseBool(str) // 这里忽略error
指针
- 基本数据类型,变量存的就是值
- 获取变量的地址用
&
- 指针类型,变量存的是一个地址,这个地址指向的空间才是实际值
- 获取指针类型所指向的值用
*
// i的地址是 &i
var i int = 123
// 指针声明,将i的地址给p指针
// 注意:指针和实际类型必须一致
var p *int = &i
// 从指针获取i的值
var i2 int = *p
标识符命名
采用驼峰命名,如果首字母大写则其他的包也能访问,如果首字母大写则只能本包访问。