func ProcessTask(id, priority int) { }
という関数を考える時、2つの引数id
, priority
はどちらもint型。
なので、もし間違えてidとpriorityの順序を逆にして使ってしまっても普通に動いてしまう。
これを防ぐために使えるのがtype
以下のように、int型をtypeを使って拡張し、ID型とPriority型を作ることができる。
type ID int type Priority int func ProcessTask(id ID, priority Priority) { }
このようにすれば、引数の順序を間違えても、コンパイルエラーとなり、間違いに気づくことができる。
参考
第3章 型システム―型を用いた安全なプログラミング:はじめてのGo―シンプルな言語仕様,型システム,並行処理|gihyo.jp … 技術評論社