Golang の定義(宣言と代入)について

package main

import (
	"fmt"
)

type User struct {
	ID int
	Name string
}

func main() {
	// 1. var 変数 型
	// 2. var 変数 型 = 値
	// 3. var 変数 = 値
	// 4. 変数 := 値
	// 5. 変数 := 値(ここでは空のスライスを代入)

	var users1 []User
	var users2 []User = []User{ { ID: 1, Name: "sample" } }
	var users3 = []User{ { ID: 1, Name: "sample" } }
	users4 := []User{ { ID: 1, Name: "sample" } }
	users5 := []User{}

	fmt.Print(users1)// []
	fmt.Print(users2)// [{1 sample}]
	fmt.Print(users3)// [{1 sample}]
	fmt.Print(users4)// [{1 sample}]
	fmt.Print(users5)// []


	// 複数の宣言その1
	var test1, test2 int
	var test3, test4 string = "test3", "test4"
	var test5, test6 = "test5", "test6"
	test7, test8 := "test7", "test8"

	fmt.Print(test1, test2)// 0 0
	fmt.Printf(test3 + ", " + test4 + "\n")// test3, test4
	fmt.Printf(test5 + ", " + test6 + "\n")// test5, test6
	fmt.Printf(test7 + ", " + test8 + "\n")// test7, test8


	// 複数の宣言その2
	var (
		i1 int
		s1 string
	)
	var (
		i2 int = 2
		s2 string = "test2"
	)
	var (
		i3 = 3
		s3 = "test3"
	)

	fmt.Print(i1, s1)// 0, ""
	fmt.Print(i2, s2)// 2, test2
	fmt.Print(i3, s3)// 3, test3
}
カテゴリー:Go