【Golang】structで構造体を定義する方法を解説!

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}
タイトルとURLをコピーしました