Go中的方法是作用在特定类型上的函数:
type Rectangle struct {
width, height float64
}
// 方法定义
func (r Rectangle) area() float64 {
return r.width * r.height
}
func main() {
r := Rectangle{3, 4}
fmt.Println(r.area()) // 调用方法
}
接口
接口定义了一组方法的集合:
type Shape interface {
area() float64
perimeter() float64
}
// 实现接口
func (r Rectangle) perimeter() float64 {
return 2 * (r.width + r.height)
}
// 使用接口
func printArea(s Shape) {
fmt.Println(s.area())
}
空接口
可以表示任何类型:
var i interface{}
i = 42 // int
i = "hello" // string
类型断言
value, ok := i.(string)
if ok {
fmt.Println("字符串:", value)
}

被折叠的 条评论
为什么被折叠?



