002 Go 语言 变量
2018-06-22 本文已影响9人
时光记忆forever
使用 var 定义变量
声明一个变量
package main
import (
"fmt"
)
func main(){
var x int
fmt.Println("x: ",x)
}
# 运行结果
x: 0
var x int
声明一个int的变量 x。变量 x 没有被赋值,go会自动用变量类型的零值初始化它。运行结果为 x: 0
。
声明一个变量并初始化
var name type = initialvalue 是声明一个变量并初始化变量。
package main
import (
"fmt"
)
func main(){
var y int = 10
fmt.Println("y: ",y)
}
# 运行结果
y: 10
类型推断
如果一个变量有一个初始值,变量声明中的类型可以省略。
如果使用语法 var name = initialvalue 声明变量,则Go将自动从初始值推断出该变量的类型。
package main
import (
"fmt"
)
func main(){
var z = 20
fmt.Println("z: ",z)
}
# 运行结果
z: 20
声明多个变量
var name1,name2 type = initialvalue1,initialvalue2 是声明多个变量的语法。
package main
import (
"fmt"
)
func main(){
var m,n int = 10,20
fmt.Printf("m: %d, n: %d\n",m,n)
}
# 运行结果
m: 10, n: 20
-
变量都拥有初始值,可以省略数据类型
package main import ( "fmt" ) func main(){ var mm,nn = 10,20 fmt.Printf("mm: %d, nn: %d\n",mm,nn) } #运行结果 mm: 10, nn: 20
-
声明不同类型的变量
package main import ( "fmt" ) func main(){ var ( name = "xiaoming" age = 18 height int ) fmt.Printf("name: %s, age: %d, height: %d\n",name,age,height) } # 运行结果 name: xiaoming, age: 18, height: 0
短变量声明
在函数中,简洁赋值语句 :=
可在类型明确的地方代替 var 声明。
name := initialvalue 是短变量声明的语法
package main
import (
"fmt"
)
func main(){
a,b := 100, "hello"
fmt.Printf("a: %d, b: %s\n",a,b)
}
# 运行结果
a: 100, b: hello
如果我们运行下面的程序:
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
}
no new variables on left side of := 这是因为变量a和b已经被声明,并且左侧没有新的变量
接下来运行下面程序:
package main
import (
"fmt"
)
func main(){
a,b := 100, "hello"
b,c := "world", 200
fmt.Printf("a: %d, b: %s, c: %d\n",a,b,c)
}
# 运行结果
a: 100, b: world, c: 200
这表示如果左侧有新的变量,我们就可以使用 :=
声明变量并赋值。
关注公众号
关注公众号