Golang 学习笔记2:变量、数据类型、常量

113 阅读2分钟

引言

熟悉 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 语言的基础数据类型包括:

类型标识示例
布尔类型booltrue/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 的变量、常量声明更加简单,数据类型更多,但转换灵活性较差。