在Go语言中,var
和 type
关键字用于不同的目的,尤其是在定义结构体时,它们的作用和用法有明显的区别。
type
关键字type
关键字用于定义新的类型。你可以使用 type
来定义一个结构体类型,或者为现有的类型创建一个别名。
type Person struct {
Name string
Age int
}
在这个例子中,type
关键字定义了一个新的结构体类型 Person
,它有两个字段:Name
和 Age
。
type Age int
在这个例子中,type
关键字为 int
类型创建了一个别名 Age
。虽然 Age
和 int
在底层是相同的类型,但它们在类型系统中被视为不同的类型。
var
关键字var
关键字用于声明变量。你可以使用 var
来声明一个结构体类型的变量。
var p Person
在这个例子中,var
关键字声明了一个 Person
类型的变量 p
。p
是一个 Person
结构体的实例,它的字段 Name
和 Age
会被初始化为它们的零值(Name
是空字符串 ""
,Age
是 0
)。
var p = Person{Name: "Alice", Age: 30}
在这个例子中,var
关键字声明并初始化了一个 Person
类型的变量 p
,并为其字段 Name
和 Age
赋予了初始值。
type
关键字用于定义新的类型(如结构体类型或类型别名)。var
关键字用于声明变量,包括结构体类型的变量。package main
import "fmt"
// 使用 type 定义结构体类型
type Person struct {
Name string
Age int
}
func main() {
// 使用 var 声明结构体变量
var p1 Person
p1.Name = "Bob"
p1.Age = 25
fmt.Println(p1)
// 使用 var 声明并初始化结构体变量
var p2 = Person{Name: "Alice", Age: 30}
fmt.Println(p2)
}
在这个示例中,type
关键字定义了 Person
结构体类型,而 var
关键字用于声明和初始化 Person
类型的变量 p1
和 p2
。
希望这个解释能帮助你理解 var
和 type
在Go语言中的区别和用法。