在Go语言中,type
关键字用于定义新的类型。它可以用来定义结构体(struct)、接口(interface)、命名类型(named type)、函数类型(function type)等。以下是一些使用type
关键字定义类型的示例:
- 定义结构体:
type Person struct { Name string Age int }
在上面的示例中,我们定义了一个名为Person
的结构体,它有两个字段:Name
和Age
,分别表示人的姓名和年龄。
- 定义接口:
type Shape interface { Area() float64 Perimeter() float64 }
在上面的示例中,我们定义了一个名为Shape
的接口,它包含两个方法:Area()
和Perimeter()
,分别用于计算形状的面积和周长。
- 定义命名类型:
type MyInt int
在上面的示例中,我们定义了一个名为MyInt
的命名类型,它是int
类型的别名。我们可以使用MyInt
类型来声明变量,就像使用int
类型一样。
- 定义函数类型:
type Calculator func(int, int) int
在上面的示例中,我们定义了一个名为Calculator
的函数类型,它接受两个整数参数并返回一个整数结果。我们可以使用Calculator
类型来声明变量,该变量可以存储满足该函数类型的函数。
定义类型后,我们可以使用该类型来声明变量、进行类型转换、实现接口等。例如:
func main() {
var p Person
p.Name = "Alice"
p.Age = 30
var s Shape
s = p // 将Person类型的变量赋值给Shape类型的变量
var c Calculator
c = func(a, b int) int { return a + b }
result := c(1, 2) // 调用c存储的函数,计算1+2的结果
}
在上面的示例中,我们声明了一个Person
类型的变量p
,并将其姓名和年龄分别设置为"Alice"和30。然后,我们声明了一个Shape
类型的变量s
,并将p
赋值给它,因为Person
类型实现了Shape
接口。最后,我们声明了一个Calculator
类型的变量c
,并将一个匿名函数赋值给它,该函数接受两个整数参数并返回它们的和。然后,我们调用c
存储的函数,计算1+2的结果,并将结果存储在变量result
中。