■ はじめに
https://dk521123.hatenablog.com/entry/2020/04/12/145237
https://dk521123.hatenablog.com/entry/2020/04/03/000000
https://dk521123.hatenablog.com/entry/2020/04/05/000000
https://dk521123.hatenablog.com/entry/2021/05/01/000000
の続き。 気になる文法事項で、以下の通り。 ~~~~~~~~~~~~~~~~~~ ・構造体 ・ポインタ/アドレス ・インターフェイス ・並列プログラミング(ゴールーチン/チャネル) etc... ~~~~~~~~~~~~~~~~~~ 今回は、「インターフェイス(interface)」を扱う。 なお、実行環境は、以下のサイトで気軽にできる。
目次
【1】インターフェイス 【2】サンプル
【1】インターフェイス
* Java などのインターフェイスとは、やや面持ちが違う
構文
type 型名 interface { メソッド名(引数の型, ...) (返り値の型, ...) ... }
【2】サンプル
package main import "fmt" // Interface type Introducer interface { Introduce() } // Struct type Person struct { Name string Age int } func (p Person) Introduce() { fmt.Printf("I am %v. I'm %v.\n", p.Name, p.Age) } func IntroduceAll(introducers ...Introducer) { for i := 0; i < len(introducers); i++ { introducers[i].Introduce() } } func main() { personA := Person{"Mike", 23} personB := Person{"Tom", 31} IntroduceAll(personA, personB) }
出力結果
I am Mike. I'm 23. I am Tom. I'm 31.
参考文献
https://dev.classmethod.jp/articles/golang-6/
関連記事
Golang ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2020/04/03/000000
Golang ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/04/12/145237
Golang ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/05/000000
Golang ~ 基本編 / 関数 ~
https://dk521123.hatenablog.com/entry/2021/05/03/000000
Golang ~ 基本編 / ポインタ/アドレス ~
https://dk521123.hatenablog.com/entry/2021/05/02/000000
Golang ~ 基本編 / 構造体 ~
https://dk521123.hatenablog.com/entry/2021/05/01/000000