引言
熟悉 golang 语言的变量声明语法、数据类型、常量声明语法。
变量声明
func varInt() {
// 用 "var 变量名 类型" 的格式声明变量
var age int
fmt.Println("uninitialized age is", age)
age = 27
fmt.Println("modified age is", age)
// 初始化变量值时可以自动推断类型,不用声明
var name = "zhang san"
fmt.Println("initialized name is", name)
// 短声明
gender := 0
fmt.Println("gender is", gender)
// 多个变量的声明也可以在一行完成,用,隔开
var height, weight = 170, 56
fmt.Println("height is", height, "weight is", weight)
address, telephone := "Heping Street", "15012345678"
fmt.Println("address is", address, "telephone is", telephone)
}
数据类型
golang 语言的基础数据类型包括:
| 类型 | 标识 | 示例 |
|---|---|---|
| 布尔类型 | bool | true/false |
| 有符号整型 | int8(byte) | [-128,127] |
| int16 | [-32768,32767] | |
| int32(rune) | [-2147483648,2147483647] | |
| int64 | [-9223372036854775808,9223372036854775807] | |
| int | 根据操作系统32位/64位 | |
| 无符号整型 | uint8 | [0,255] |
| uint16 | [0,65535] | |
| uint32 | [0,4294967295] | |
| uint64 | [0,18446744073709551615] | |
| uint | 根据操作系统32位/64位 | |
| 浮点类型 | float32 | [-3.4E38,3.4E38] |
| float64 | [-1.79E+308,+1.79E+308] | |
| 复数类型(内置函数) | complex64 | 具有 float32 实部和虚部的复数 |
| complex128 | 具有 float64 实部和虚部的复数 |
复数使用示例:
func complexDemo() {
complex1 := complex(1, 2)
complex2 := 3 + 4i
sum := complex1 + complex2
multiply := complex1 * complex2
fmt.Println("sum is", sum, "multiply is", multiply)
}
golang 对于类型比较严格,没有自动的转换,比如 int + float64 就会报错。
常量
如果试图给常量赋值,golang 会报错。
func constDemo() {
// 声明一个常量
const num = 50
fmt.Println(num)
// 声明一组常量
const (
a = 30
b = "apple"
)
fmt.Println(a, b)
}
常量在声明时无类型,在使用时分配类型。
总结
golang 的变量、常量声明更加简单,数据类型更多,但转换灵活性较差。