どうも、豚さんです。
今回はGo言語に関して書いていきます。
今回もPythonみたいに深く触れずに記事を書いていきたいと思います。
Pythonの記事同様、変数から配列の記事で始めていきます。
公式サイトのサンプルソースを変えて使っています。
プログラムは func main() {} の中を見てください。
あくまで変数〜配列についてです。
それ以外はまだ理解していないので、ご了承ください。
※ 注意:内容はPHPか何かの言語を書いたことがある方向けなので、
説明を割愛している箇所は多々ありますので、ご了承ください。
go version go1.19.4 darwin/amd64
1. 変数
変数宣言時は「var 変数名 型名」で宣言します。
値を代入しない時の初期値はint型だと0、とstring型だと""です。
package main
import "fmt"
func main() {
// 型が明確な場合は、型の記載が不要
var num int
var test string
fmt.Println(num)
fmt.Println(test)
}
$ go run sample.go
0
以下は初期値の指定です。
package main
import "fmt"
func main() {
var num int = 1
var test string = "テスト"
fmt.Println(num)
fmt.Println(test)
}
$ go run sample.go
1
テスト
以下は省略形です。
package main
import "fmt"
func main() {
// 型が明確な場合は、型の記載が不要
var num = 1
var test = "テスト"
fmt.Println(num)
fmt.Println(test)
}
$ go run sample.go
1
テスト
初期値を指定するはvar記載不要で、:=で表現もできます。
package main
import "fmt"
func main() {
num := 1
test := "テスト"
fmt.Println(num)
fmt.Println(test)
}
$ go run sample.go
1
テスト
まとめて定義する際は以下のように書きます。
package main
import "fmt"
func main() {
var (
num int = 1
test string = "テスト"
)
fmt.Println(num)
fmt.Println(test)
}
$ go run sample.go
1
テスト
同時に代入する際は以下のように書きます。
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. 定数
定数定義の場合は型は省略可能です。
package main
import "fmt"
func main() {
// 型は省略可能
// const num int = 1
const num = 1
fmt.Println(num)
}
$ go run sample.go
1
定数もまとめて定義可能です。
package main
import "fmt"
func main() {
const (
num = 1
test = "テスト"
)
fmt.Println(num)
fmt.Println(test)
}
$ go run sample.go
1
テスト
3. 配列
配列は途中で個数を変更することはできません。
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
初期値に設定する場合です。
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
初期化によって個数が決まる場合、個数の箇所に「...」と記載します。
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
参考
ありがとうございました。