Closed3
GoのInterfaceについて
Goのinterfaceが初見だと分からなかったので整理する
↓Javaのようなimplementsキーワードで明示する必要がない
Java
public interface Animal {
void eat();
}
public class Human implements Animal {
@Override
public void eat() {
System.out.println("I eat bread.");
}
}
Go
package main
import "fmt"
type Human struct {
Name string
}
type Animal interface {
Eat()
}
func (h Human) Eat() {
fmt.Println(h.Name, "is eating")
}
func move(a Animal) {
a.Eat()
}
func main() {
human := Human{"John"}
move(human)
}
- Goだとimplementsキーワードなどで明示的に定義する必要がない
- interfaceに定義したメソッドやメンバを持つ構造体が自動的にinterfaceとして実装される
このスクラップは2023/06/17にクローズされました