变量定义的几种方式:
(1)使用var关键字来定义
var a, b, c bool
var s1, s2 string = “hello”, “world”
var (
aa = 3
ss = “kkk”
bb = true
)
使用var关键字的定义方式可以放在函数内,也可以放在函数外(包内)。
(2)让编译器自动决定类型
var a, b, i, s1, s2 = true, false, 3, “hello”, “world”
(3)使用:=定义变量(只能在函数内使用,不能用在函数外(包内))
a, b, i, s1, s2 := true, false, 3, “hello”, “world”
package main
import "fmt"
// 在函数外(包内部)定义变量,其作用域为包内部
var aa = 3
var (
ss = "kkk"
bb = true
)
// 在函数内定义变量,其作用域为函数内部
// 定义变量时可以不指定初始值
func variableZeroValue(){
var a int
var s string
fmt.Printf("%d %q\n", a, s)
// 0 ""
}
// 定义的同时初始化;可以同时定义多个变量
func variableInitialValue(){
var a, b int = 3, 4
var s string = "abc"
fmt.Println(a, b, s)
// 3 4 abc
}
// 让编译器自动推断变量类型
func variableTypeDeduction(){
var a, b, c, s = 3, 4, true, "def"
fmt.Println(a, b, c, s)
// 3 4 true def
}
// 使用:=来定义变量(更常用)
func variableShorter(){
a, b, c, s := 3, 4, true, "def"
b = 5
fmt.Println(a, b, c, s)
// 3 5 true def
}
func main(){
variableZeroValue()
variableInitialValue()
variableTypeDeduction()
variableShorter()
fmt.Println(aa, ss, bb)
// 3 kkk true
}
变量定义要点回顾:
①变量类型写在变量名之后
②编译器可推测变量类型
③没有char, 只有rune(32位)
④原生支持复数类型