1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Go】インターフェース

Last updated at Posted at 2020-03-23

[準備]

⓪メソッドらがある

①インターフェースに使いたいメソッドらを指定

②ストラクトを作る

③ストラクトを型にメソッドの処理をつくる (オーバーライド的な?)

[呼び出し]

①インターフェース型の変数を作る
②ストラクトを設定する
③そのストラクトの値でメソッドが実行される

メリット
・インターフェースの型を指定することで利用するメソッド、返り値を指定できる
・異なるストラクトでメソッドが利用できる

参考リンク:
https://dev.classmethod.jp/articles/golang-6/
https://qiita.com/rtok/items/46eadbf7b0b7a1b0eb08
https://medium.com/eureka-engineering/golang-embedded-ac43201cf772

◎ Stringer interface
・fmtパッケージに入っているインターフェース
文字を返すString()メソッドを持っている

・以下のようにインターフェースのメソッドを利用できる。
下記のように表示したいデータのみ表示させることができる。


package main

import "fmt"

type Cat struct {
	Name string
	Age  int
}

// String()メソッドを利用すると名前だけ表示し
// 他の値は表示しないようにしたりできる
func (a Cat) String() string {
	return fmt.Sprintf("My name is %v.", a.Name)
}

func main() {
	cat := Cat{"Kuro", 18}
	fmt.Println(cat)
}

結果 (18は表示されない)

My name is Kuro.

◎ まとめ

予めあるメソッドはインターフェースを利用して
異なるストラクトでメソッドを定義できる

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?