
GoLang 函数:通过类型断言获取接口的具体类型
类型断言是一种在 Go 语言中检查接口实际类型的机制。它允许我们根据接口的值确定具体的类型,以便访问其特定方法或属性。
语法
类型断言的语法如下:
value, ok := value.(Type)
其中:
-
value是要进行断言的接口值。 -
Type是要断言到的具体类型。 -
ok是一个布尔值,表示断言是否成功。如果成功,ok为 true;如果失败,ok为 false。
实战案例
下面是一个实战案例,演示如何使用类型断言:
立即学习“go语言免费学习笔记(深入)”;
package main
import "fmt"
type Shape interface {
Area() float64
}
type Rectangle struct {
Width, Height float64
}
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
func PrintArea(shape Shape) {
if rectangle, ok := shape.(Rectangle); ok {
fmt.Println("Rectangle's area:", rectangle.Area())
} else {
fmt.Println("Shape is not a rectangle")
}
}
func main() {
rect := Rectangle{Width: 5, Height: 10}
PrintArea(rect) // Output: Rectangle's area: 50
}在这个示例中:
- 我们定义了
Shape接口,它有一个Area方法。 - 我们定义了
Rectangle结构,它实现了Shape接口。 - 我们定义了
PrintArea函数,它接受Shape接口作为参数。 - 在
PrintArea函数中,我们使用类型断言检查shape参数是否是Rectangle类型。如果它是,我们就访问并打印其特定的Area方法。 - 在
main函数中,我们创建了一个Rectangle对象并将其传递给PrintArea函数。










