数据类型

WX20220406-090608@2x

注意:如果给数据类型起一个别名,属于不同类型,进行运算会出错

type aaa int32

func main() {
	var i aaa
	var j int32
	fmt.Print(i+j)
}

这样会报错

# command-line-arguments
./test2.go:24:14: invalid operation: i + j (mismatched types aaa and int32)

变量声明和赋值

// 声明方式1
var x, y int
// 声明方式2
var (  // 这种因式分解关键字的写法一般用于声明全局变量
    a int
    b bool
)
// 声明并赋值
var c, d int = 1, 2
var e, f = 123, "hello"

//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"

func main(){
    g, h := 123, "hello"
    println(x, y, a, b, c, d, e, f, g, h)
}

变量的类型转换

  • go 中不存在隐式转换,必须是显式的
  • 类型转换只能发生在两种兼容类型之间
  • 类型转换格式:<变量名称> [:]=<目标类型>(<需要转换的变量>)
func main() {  
    var a int64 = 3
    var b int32
    b = int32(a)
    fmt.Printf("b 为 : %d", b)
}