Golangのtypeは便利なもので、これによりある型に別の名前を付けたり、スライスに別名を付けて関数を追加できる。
今回はスライスに関数を追加するメモ。
広告
スライス自体を別の型として扱うことができる
type NAME []S とすることで(NAMEはつけたい名前、Sは構造体などの型名)、スライスに別の名前を付けられる。つまり、まとめて扱える。
Sortできるようにするためによく使う
sortインタフェースを実装するためにこれはよく使われる。
しかし、このインタフェースを実装したついでに関数を追加もできる。たとえば func (N NAME) Sub(){}みたいに。ソートのほかにも何かスライス全体に処理をかけたいときそれを関数として実装できる。
注意
別名を付けたものとして扱うにはキャストが必要。逆に、元に戻すにももちろんキャストが必要。
更に詳しくは
「Golang type」で検索すると、分かりやすいサイトが出てくる。メソッドの実装例は「Golang ソート」等で調べると、sortインタフェースのための関数実装という形で出てくる。