A Tour of Go をやる! – その9 「Variables」入れ物! 【Go言語/A Tour of Go】

記事ヘッダー_Variables IT

「A Tour of Go をやる!」シリーズの第9回目。 二桁回目前…

今回から、ようやくファンクション回を逃れ、変数回に入っていきます。
でも進行ペースは内容に拘らず1ページ1記事ですすみます。…どんなに薄い内容でもな。

- PR -

今回進めるページ「Variables(バリアブル)」

「A Tour of Go」の該当ページはこちら。

A Tour of Go

タイトルの「Variables」とは?

変数のことですね。
変数とは、1,2,3…といった数値や “Hello World” などの文字が入ったりする入れ物の事。

変数に関する言語仕様を確認する

「Variable declarations」からの引用。
変数宣言の説明と文法です。

A variable declaration creates one or more variables, binds corresponding identifiers to them, and gives each a type and an initial value.

変数宣言は、1つ以上の変数を作成し、対応する識別子をそれらにバインドし、それぞれに型と初期値を与えます。(by Google Translated.)

The Go Programming Language Specification - The Go Programming Language
Go
VarDecl     = "var" ( VarSpec | "(" { VarSpec ";" } ")" ) .
VarSpec     = IdentifierList ( Type [ "=" ExpressionList ] | "=" ExpressionList ) .

var i int
var U, V, W float64
var k = 0
var x, y float32 = -1, -2
var (
	i       int
	u, v, s = 2.0, 3.0, "bar"
)
var re, im = complexSqrt(-1)
var _, found = entries[name]  // map lookup; only interested in "found"
Expand

基本となる書き方

変数宣言の基本的な文法です。
引用にあった使用例では宣言以外に初期化なども書かれていましたが、今回は宣言のみが学習対象。初期化は次回やる模様。

Go
// 変数宣言の書き方
var [変数名] [型]
// e.g.
// i という名前の変数を int型 で宣言
var i int
// fitstname と lastname という変数を string型 で宣言
var firstname, lastname string
Expand

初期値について

初期の値を指定せず宣言された変数には、初期値がセットされます。
初期値についてはもう数回先で予定されている様なので、ここでは割愛。

宣言された変数が使われなかったら…

エラーになるので注意。

Go
package main

import "fmt"

func main() {

  // x を宣言
  var x int

  fmt.Println("Hello World!")
  
  // x を使わず終了
}
Expand

Go Playground

でも、パッケージレベルで宣言された変数やファンクションのパラメータで宣言された変数はエラーになりません。

Go
package main

import "fmt"

// パッケージ変数を宣言
var name string
var age int

func main() {

  hoge(5)
  fmt.Print("World!")
  
  // それぞれの変数を使わず終了
}

// パラメータで変数を宣言
func hoge(x int) {

  fmt.Print("Hello ")

}
Expand

Go Playground

サンプルプログラムを見てみる

何時も通り関連箇所にコメント打ってます。

Go
package main

import "fmt"

// c, python, java という名前の変数を bool型 で宣言
var c, python, java bool

func main() {

  // i という名前の変数を int型 で宣言
  var i int

  fmt.Println(i, c, python, java)

}
Expand

Go Playground

変数を宣言して、その変数の値を出力してるだけのプログラムですね。
…内容のないプログラム。_(:3」∠)_

さいごに

今回は変数の宣言についてな内容でした。
次回以降も変数な内容が続くようです…

ではまた次回~٩( ‘ω’ )و

コメント

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