No.
2023-10-18
  • Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Oct
  • Nov
  • Dec
  • Sun
  • Mon
  • Tue
  • Wed
  • Thu
  • Fri
  • Sat
  • 27
  • 28
  • 29
  • 30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Interface型

1.基本

interfaceは2つの使い方がある。

  1. 振る舞いを抽象化する
  2. あらゆる型(interface以外)を代入することができる

1.1 振る舞いを抽象化する

  • Pythonでいうクラスのようなイメージ
    • 型にメソッドを実装できるというGo言語の性質を利用している

例:(https://go.dev/play/p/T77psnc50IN)

type Hello interface {
	Hello()
}

type hello struct{}

func (h *hello) Hello() {
	fmt.Println("Hello from Go")
}

func main() {
	var h hello
	h.Hello()
}

1.2 あらゆる型を代入できる

  • 型に応じて動的に動作を変えることができる