Golangで構造体の定義する方法
Golangでは以下の書式で構造体を定義することができます。
type 構造体名 struct {
要素名 要素の型
}
//例
type User struct {
Name string
Email string
Age int
}
具体的に構造体を使ってみる
それでは上記のUser型を使用して構造体の扱い方を見ていきましょう。
明示的な構造体の型定義
変数宣言時に明示的にUser型を指定し、User型の各要素に値を代入するやり方です。
package main
import "fmt"
type User struct {
Name string
Email string
Age int
}
func main() {
var user User // 変数宣言時にUser型を指定
user.Name = "田中"
user.Email = "tanaka@email.com"
user.Age = 20
fmt.Println(user)
}
出力結果
{田中 tanaka@email.com 20}
暗黙的な構造体の型定義
また変数を定義する時に、構造体の要素に値を指定することもできます。
package main
import "fmt"
type User struct {
Name string
Email string
Age int
}
func main() {
user := User{} //暗黙的にUser型を指定
user.Name = "田中"
user.Email = "tanaka@email.com"
user.Age = 20
fmt.Println(user)
}
出力結果
{田中 tanaka@email.com 20}
また変数を定義するときに、構造体の各値を指定することもできます。
package main
import "fmt"
type User struct {
Name string
Email string
Age int
}
func main() {
user := User{Name: "田中", Email: "tanaka@email.com", Age: 20}
fmt.Println(user)
}
出力結果は同じです。
{田中 tanaka@email.com 20}
構造体のkeyを指定しない場合
明示的に「Name: “田中”」とか「Age: 20」みたいに要素のKeyを指定せずとも、”田中”や20といった値を指定するだけでGolangの構造体は扱えます。
package main
import "fmt"
type User struct {
Name string
Email string
Age int
}
func main() {
user := User{"田中", "tanaka@email.com", 20}
fmt.Println(user)
}
出力結果はもちろん同じです。
{田中 tanaka@email.com 20}