Back to questions
Senior
2
Может ли структура в Go реализовать сразу несколько интерфейсов?
Companies where asked
SberAuto
Answer from AI
sobes.tech AI
Да, в Go структура может реализовывать сразу несколько интерфейсов. В Go реализация интерфейса происходит неявно: если структура содержит все методы интерфейса, она считается его реализацией.
Это значит, что если структура реализует методы нескольких интерфейсов, она автоматически реализует все эти интерфейсы одновременно.
Пример:
package main
import "fmt"
type Reader interface {
Read() string
}
type Writer interface {
Write(string)
}
type ReadWriter interface {
Reader
Writer
}
type MyStruct struct {
data string
}
func (m *MyStruct) Read() string {
return m.data
}
func (m *MyStruct) Write(s string) {
m.data = s
}
func main() {
var rw ReadWriter = &MyStruct{}
rw.Write("Hello")
fmt.Println(rw.Read()) // Output: Hello
}
Здесь MyStruct реализует интерфейсы Reader и Writer, а значит и ReadWriter.