【Golang】変数の明示的定義と暗黙的定義の違いを解説!

明示的な型定義

「var 変数名 型 = 値」のフォーマットで明示的な型定義をした変数宣言ができます。

var number int = 10

例えば上記の例だと、変数numberをint型で宣言し、数値の10という値を代入してます。

暗黙的な型定義

「変数名 := 値」のフォーマットだと暗黙的な型定義の変数宣言ができます。変数の型は代入された値の型がそのまま反映されます。

これを「型推論」とも言います。わざわざ型を指定せず、代入される値の型を推論するということです。

number := 10

こちらも変数numberの型はint型で値は10が代入されてます。

具体例にコードを書いてみる

main.goファイルを用意し、以下のコードを記述して出力してみます。

package main

import (
  fmt
)

func main () {
  var number1 int = 1
  number2 := 2

  fmt.Println(number1)        // number1を出力
  fmt.Println(number2)        // number2を出力

  fmt.Printf("%T\n", number1) // number1の型を出力
  fmt.Printf("%T\n", number2) // number2の型を出力
}

出力結果

1
2
int
int

明示的に指定した場合も暗黙的に指定した場合も、どちらも型はint型となっているのが分かりますね。

タイトルとURLをコピーしました