声明一个变量
语法:
var name type
package main
import "fmt"
func main() {
var age int // variable declaration
fmt.Println("my age is", age)
}
语句 var age int
声明了一个名为 age
类型为 int
的变量。我们还没有为变量分配任何值。如果一个变量没有被赋值,golang 会自动用变量类型的零值初始化它。在这种情况下,age
被赋值为 0。
声明一个变量并初始化
语法:
var name type = initialvalue
package main
import "fmt"
func main() {
var age int = 29 // variable declaration with initial value
fmt.Println("my age is", age)
}
类型推导
语法:
var name = initialvalue
如果一个变量有初始值,golang 将自动使用该初始值来推断该变量的类型。因此,如果一个变量有初始值,变量声明中的类型可以省略。
package main
import "fmt"
func main() {
var age = 29 // type will be inferred
fmt.Println("my age is", age)
}
可以看到声明变量 age
时并没有指定其类型。因为 age
的初始值为 29,golang 自动推断其类型为 int
。
多变量声明
语法:
var name1, name2 type = initialvalue1, initialvalue2
package main
import "fmt"
func main() {
var width, height int = 100, 50 //declaring multiple variables
fmt.Println("width is", width, "height is", height)
}
如果变量具有初始值,则类型可以省略。
package main
import "fmt"
func main() {
var width, height = 100, 50 //"int" is dropped
fmt.Println("width is", width, "height is", height)
}
可能有些情况下,我们想在一个语句中声明不同类型的变量。
语法:
var (
name1 = initialvalue1,
name2 = initialvalue2
)
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)
}
这里我们声明了一个字符串类型的变量 name
,以及两个整型的变量 age
和 height
。
简短声明
golang 提供了一种简洁的方式,使用 :=
操作符来声明变量。这种方式称为简短声明。注意:这种声明语法只能在函数内部使用。
语法:
name := initialvalue
package main
import "fmt"
func main() {
name, age := "naveen", 29 //short hand declaration
fmt.Println("my name is", name, "age is", age)
}
简短声明要求必须给声明的每一个变量都提供初始值。下面的程序将会报错:cannot assign 1 values to 2 variables
。这是因为没有给 age
提供初始值。
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)
}
上面的程序中,在 b, c := 40, 50
这一行,虽然变量 b
在之前已经被声明了,但是 c
却是新声明的变量,因此这是合法的。
变量可以被赋予运行时产生的值。
package main
import (
"fmt"
"math"
)
func main() {
a, b := 145.8, 543.8
c := math.Min(a, b)
fmt.Println("minimum value is ", c)
}
网友评论