Skip to content

Day 08 - 接口

接口定义

go
type Writer interface {
    Write([]byte) (int, error)
}

实现接口

go
type ConsoleWriter struct{}

func (w ConsoleWriter) Write(data []byte) (int, error) {
    fmt.Println(string(data))
    return len(data), nil
}

空接口

go
var i interface{} = "hello"

// 类型断言
str, ok := i.(string)
if ok {
    fmt.Println(str)
}

// switch判断类型
switch v := i.(type) {
case string:
    fmt.Println("string:", v)
case int:
    fmt.Println("int:", v)
}

面试考点

问题:Go接口和Java接口有什么区别?

答案:

  1. Go接口是隐式实现,不需要显式声明
  2. Go接口可以为空接口(interface{})
  3. Go接口可以包含方法,也可以为空

📅 学习进度

Day主题状态
01-07基础
08接口
09并发基础-goroutine

本文为Go 30天学习计划第8天内容

📚 导航

| ← Day 07 - 上一章 | Day 09 - 下一章 →

最后更新: