変数と定数

変数と定数

基本となるvarとconst、省略記法について。
複数の書き方があるが、(どれが良いとかはないので)書きやすい書き方で良いかも。

var

var "変数名" "型名" で定義する。

  • funcの外でも記述できるのでグローバル変数としても使える
  • 型をしっかり指定したい場合
// varはfuncの外にも定義できる
// 型だけ定義してあとから代入する場合などに。
var global string
global = "global"

// 宣言時は型を省略もできる
var global2 = "global2"
fmt.Println(global, global2)

func main() {
  // varで個別に書く
  var i int = 100
  var f float64 = 1.23
  var s string = "string"
  var t bool = true
  fmt.Println(i, f, s, t)

  // 同じ型である場合はまとめて宣言できる
  var a, b bool = true, false
  fmt.Println(a, b)

  // ()でくくってまとめて書ける
  var (
    i2 int = 100
    f2 float64 = 1.23
    s2 string = "string"
    t2 bool = true
  )
  fmt.Println(i2, f2, s2, t2)

  // 同じ型はまとめて書ける
  var i3, i4 = 3, 4
  fmt.Println(i3, i4)
}

: (short variable declaration)

日本語で発音するとショートバリアブルデクレアレーション。
varと型を書かずに ”:” で省略できる記述。

  • ただし、funcの中でのみ記述可能。
  • 数値はint、小数点はfloat64となるため、厳密に型を指定したい場合はvarを使う。
func main() {
  // := で記述する
  i := 1
  f := 1.23
  s := "string"
  t := true
  fmt.Println(i, f, s, t)

  // 同じ型はまとめて書ける
  i2, i3 := 2, 3
  fmt.Println(i2, i3)
}

const

const ”変数名” で定義する。

  • 型は指定しない
  • 実行されるタイミングで型がきまる

// Goの違うファイルから読み込み場合は先頭を大文字
const Pi = 3.14

func main() {
  fmt.Println(Pi)
}