LoginSignup
1
3

More than 1 year has passed since last update.

PHPerが学ぶGo言語① 変数・定数・配列

Last updated at Posted at 2023-01-09

どうも、豚さんです。
今回はGo言語に関して書いていきます。

今回もPythonみたいに深く触れずに記事を書いていきたいと思います。
Pythonの記事同様、変数から配列の記事で始めていきます。

公式サイトのサンプルソースを変えて使っています。

プログラムは func main() {} の中を見てください。
あくまで変数〜配列についてです。
それ以外はまだ理解していないので、ご了承ください。

※ 注意:内容はPHPか何かの言語を書いたことがある方向けなので、
説明を割愛している箇所は多々ありますので、ご了承ください。

go version go1.19.4 darwin/amd64

1. 変数

変数宣言時は「var 変数名 型名」で宣言します。
値を代入しない時の初期値はint型だと0、とstring型だと""です。

sample.go
package main

import "fmt"

func main() {
	// 型が明確な場合は、型の記載が不要
	var num int
	var test string
  	fmt.Println(num)
	fmt.Println(test)
}
$ go run sample.go
0

以下は初期値の指定です。

sample.go
package main

import "fmt"

func main() {
	var num int = 1
	var test string = "テスト"
  	fmt.Println(num)
	fmt.Println(test)
}
$ go run sample.go
1
テスト

以下は省略形です。

sample.go
package main

import "fmt"

func main() {
	// 型が明確な場合は、型の記載が不要
	var num = 1
	var test = "テスト"
  	fmt.Println(num)
	fmt.Println(test)
}
$ go run sample.go
1
テスト

初期値を指定するはvar記載不要で、:=で表現もできます。

sample.go
package main

import "fmt"

func main() {
	num := 1
	test := "テスト"
	
  	fmt.Println(num)
	fmt.Println(test)
}
$ go run sample.go
1
テスト

まとめて定義する際は以下のように書きます。

sample.go
package main

import "fmt"

func main() {
	var (
		num int = 1
		test string = "テスト"
	)
  	fmt.Println(num)
	fmt.Println(test)
}
$ go run sample.go
1
テスト

同時に代入する際は以下のように書きます。

sample.go
package main

import "fmt"

func main() {
	var num int
	var test string
	
	num, test = 1, "テスト"
	
  	fmt.Println(num)
	fmt.Println(test)
}
$ go run sample.go
1
テスト

2. 定数

定数定義の場合は型は省略可能です。

sample.go
package main

import "fmt"

func main() {
	// 型は省略可能
	// const num int = 1
	const num = 1
	fmt.Println(num)
}
$ go run sample.go 
1

定数もまとめて定義可能です。

sample.go
package main

import "fmt"

func main() {
	const (
		num = 1
		test = "テスト"
	)
	
  	fmt.Println(num)
	fmt.Println(test)
}
$ go run sample.go 
1
テスト

3. 配列

配列は途中で個数を変更することはできません。

sample.go
package main

import "fmt"

func main() {
	// 3は個数
	a := [3]string{}
	a[0] = "one"
	a[1] = "two"
	a[2] = "three"
	fmt.Println(a[0], a[1], a[2])
}
$ go run sample.go
one two three

初期値に設定する場合です。

sample.go
package main

import "fmt"

func main() {
	a := [3]string{"one", "two", "three"}
	fmt.Println(a[0], a[1], a[2])
}
$ go run sample.go
one two three

初期化によって個数が決まる場合、個数の箇所に「...」と記載します。

sample.go
package main

import "fmt"

func main() {
	a := [...]string{"one", "two", "three"}
	fmt.Println(a[0], a[1], a[2])
}
$ go run sample.go
one two three

参考

ありがとうございました。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3