← 返回主页

第6课: 结构体与接口

结构体定义

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)
}