在 Go 中,声明变量的方式有两种:var 和 :=。其中 var 用于声明变量,:= 用于声明并初始化变量。
使用 var 声明变量:
代码语言:javascript复制var 变量名 类型 = 值
例如:
代码语言:javascript复制var age int = 18
var name string = "Tom"
使用 := 声明并初始化变量:
代码语言:javascript复制变量名 := 值
例如:
代码语言:javascript复制age := 18
name := "Tom"
Go 是一门静态类型语言,因此在声明变量时需要指定变量的类型。如果没有指定变量的类型,则会根据变量的值自动推断类型。
例如:
代码语言:javascript复制var a = 10 // 自动推断类型为 int
var b = "hello" // 自动推断类型为 string
也可以使用多个变量一起声明和初始化:
代码语言:javascript复制var age, height int = 18, 180
var name, gender = "Tom", true
在 Go 中,变量的类型可以是基本类型、结构体、数组、切片、字典、函数等。声明和初始化不同类型的变量的语法也不同,下面是一些例子:
代码语言:javascript复制// 声明和初始化结构体类型的变量
type Person struct {
name string
age int
}
var p1 Person = Person{"Tom", 18}
var p2 Person = Person{name: "Jack", age: 20}
// 声明和初始化数组类型的变量
var a1 [5]int = [5]int{1, 2, 3, 4, 5}
var a2 = [5]int{1, 2, 3, 4, 5}
// 声明和初始化切片类型的变量
var s1 []int = []int{1, 2, 3, 4, 5}
var s2 = []int{1, 2, 3, 4, 5}
// 声明和初始化字典类型的变量
var m1 map[string]int = map[string]int{"Tom": 18, "Jack": 20}
var m2 = map[string]int{"Tom": 18, "Jack": 20}
// 声明和初始化函数类型的变量
func add(a, b int) int {
return a b
}
var f1 func(int, int) int = add
var f2 = add
在 Go 中,变量的作用域是在声明它的代码块内。如果在函数内部声明的变量,它只在该函数内部可见。如果在函数外部声明的变量,则可以被整个包使用。