Appearance
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接口有什么区别?
答案:
- Go接口是隐式实现,不需要显式声明
- Go接口可以为空接口(interface{})
- Go接口可以包含方法,也可以为空
📅 学习进度
| Day | 主题 | 状态 |
|---|---|---|
| 01-07 | 基础 | ✅ |
| 08 | 接口 | ✅ |
| 09 | 并发基础-goroutine | ⬜ |
