结构体定义
type Person struct {
Name string
Age int
}
p := Person{Name: "Alice", Age: 25}
fmt.Println(p.Name)
结构体方法
func (p Person) Greet() string {
return "Hello, " + p.Name
}
func (p *Person) Birthday() {
p.Age++
}
接口
type Speaker interface {
Speak() string
}
type Dog struct {
Name string
}
func (d Dog) Speak() string {
return "Woof!"
}
var s Speaker = Dog{Name: "Buddy"}
fmt.Println(s.Speak())
空接口
var i interface{}
i = 42
i = "hello"
i = []int{1, 2, 3}
// 类型断言
value, ok := i.(string)
if ok {
fmt.Println(value)
}