1、变量声明/初始化
var name string = "hello world"
var name = "hello world"
name := "hello world"
var age int = 10
var ptr = &age
ptr := new(int)
var (
name string
age int
gender string
)
name, age := "hello", 10
func GetPoint() (int, int) {
return 100, 200
}
func main(){
x, _ := GetPoint()
_, y := GetPoint()
fmt.Println(x, y)
}
2、变量类型
| 类型 | 数据类型 | bit | 备注 |
|---|
| 有符号整型 | int | 32或者64 | 与计算机系统位数有关 |
| int8 | 8 | |
| int16 | 16 | |
| int32 | 32 | |
| int64 | 64 | |
| 无符号整型 | uint | 32或者64 | 与计算机系统位数有关 |
| uint8 | 8 | |
| uint16 | 16 | |
| uint32 | 32 | |
| uint64 | 64 | |
| 浮点型 | float32 | 32 | 表示为科学计数法后,精确到小数点后6位的精度 |
| float64 | 64 | 表示为科学计数法后,精确到小数点后15位的精度 |
| byte(字符型) | byte | 8 | 范围与uint一样,可用于表示的是 ACSII 表中的一个字符,字符用单引号表示,如'A' |
| rune(字符型) | rune | 32 | 范围与uint32一样,可用于表示的是 Unicode 表中的一个字符,字符用单引号表示,如'我' |
| 字符串类型 | string | 与具体字符串内容(中英文)和长度有关 | 采用utf-8进行编码,中文字符占用3个字节,英文字符占用1个字节;字符串用双引号或者反引号表示,如"hello",hello,\n hello world,反引号表示原生型字符串,即会忽略字符串中的转义 |
| 字典 | map | - | key,value键值对哈希表 |
| 布尔类型 | bool | - | 不能与int进行转换 |
| 数组 | []int等 | - | |
| 切片 | 数组的引用 | - | |
| 指针 | *int等 | - | |