前面的语句var age int声明了一个int类型的变量age,但是并没有给该变量赋值。在Golang中,如果一个变量声明时未手动赋值,Golang会自动将该变量初始化为对应类型的零值(注意每种类型都有其独特的零值,比如int类型的零值为0)。这里由于age声明为了int类型,因此Golang自动将该变量初始化为0。运行该程序会输出如下结果:
my age is 0
我们可以给某种类型的变量赋予该类型的任何值,比如这里的age变量,我们可以赋予任何大小的整数值:
packagemainimport"fmt"funcmain(){var age int// 变量声明 fmt.Printf("my age is %d\n", age) age =29// 给age变量赋值 fmt.Printf("my age is %d\n", age) age =54// 给age变量赋另一个值 fmt.Printf("my age is %d\n", age)}
package main
import "fmt"
func main() {
var (
name = "naveen"
age = 29
height int
)
fmt.Println("my name is", name, ", age is", age, "and height is", height)
}
my name is naveen , age is 29 and height is 0
package main
import "fmt"
func main() {
var name, age = "naveen", 29
fmt.Println("my name is", name, ", age is", age)
}
package main
import "fmt"
func main() {
name, age := "naveen", 29 // 变量声明简写
fmt.Println("my name is", name, "age is", age)
}
my name is naveen age is 29
assignment mismatch: 2 variable but 1 values
package main
import "fmt"
func main() {
name, age := "naveen" //error
fmt.Println("my name is", name, "age is", age)
}
package main
import "fmt"
func main() {
a, b := 20, 30 // declare variables a and b
fmt.Println("a is", a, "b is", b)
b, c := 40, 50 // b is already declared but c is new
fmt.Println("b is", b, "c is", c)
b, c = 80, 90 // assign new values to already declared variables b and c
fmt.Println("changed b is", b, "c is", c)
}
a is 20 b is 30
b is 40 c is 50
changed b is 80 c is 90
no new variables on left side of :=
package main
import "fmt"
func main() {
a, b := 20, 30 //a and b declared
fmt.Println("a is", a, "b is", b)
a, b := 40, 50 //error, no new variables
}
package main
import (
"fmt"
"math"
)
func main() {
a, b := 145.8, 543.8
c := math.Min(a, b)
fmt.Println("minimum value is ", c)
}