Go言語の型の宣言をこれまでいろいろ見てきました。
これらの型を利用した場合、格納する変数の値を表現するには意味がわかりにくくなる場合があります。
ここでGo言語は新しい型を宣言して利用することで、コードの意味を明白にしたりエラーを防いだりすることができます。
ここでは、この機能について見ていきましょう。
typeキーワード – 新しい型の宣言
Go言語では、新しい型を宣言することで、コードの意味を明白にしたりエラーを防いだりすることができます。
この新しい宣言をするには、「type」キーワードを利用します。
次のような形で宣言します。
type [新しい型の名前] [型名]
変数の宣言と同じような形ですが、この「新しい型の名前」を新たな型名として変数で利用できます。
次のようなコードで見てみましょう。
package main
import "fmt"
var author string
type bookname string
var favoritebook bookname
func main() {
author = "クレイトン・クリステンセン"
favoritebook = "イノベーションのジレンマ"
fmt.Println(author)
fmt.Printf("%T\n", author)
fmt.Println(favoritebook)
fmt.Printf("%T\n", favoritebook)
}
authorという変数をstring型で宣言しています。これは、これまでの宣言と同じです。
新しい型宣言は、typeの宣言で始まっています。ここでは、「bookname」という新しい型を宣言しています。その後にstringを指定していますので、string型と同じ振る舞いをする変数となります。
この新しいbookname型を利用して、favoritebookという変数を定義しています。
main()関数の中でそれぞれの変数に値を代入して初期化しています。変数favoritebookはbookname型となるので、ここでは本の名前を格納するという意味として利用でき、コードの意味が理解しやすくなります。
実行結果はこのようになります。
クレイトン・クリステンセン
string
イノベーションのジレンマ
main.bookname
%Tで型を確認すると、typeで宣言したものは、新しい型で表示されているのがわかります。
このtypeでの宣言は変数だけでなく、関数でも利用できます。このあたりは、今後話をすすめていく中で扱いたいと思います。
最後に
ここでは、Go言語の新しい型の宣言をみてきました。
新しい型の宣言は、typeキーワードを使います。新しい型名を定義して、対応する型名を指定します。
新しい型を宣言して利用すると、コードの意味を明白にしたりエラーを防ぐのに役立ちます。
ここでは、Pythonでは対応するものが無いと思われますので、Pythonコードでの記述は省略しました。