Goの構造体/クラス

ツイート このエントリーをはてなブックマークに追加
1つ上へ / ブログトップへ

Goは構造体もクラスもひっくるめてstructで扱います。

package main

import (
        fmt "fmt"
	strconv "strconv"
)

type Moke struct {
	Name  string
	Level int
}

// entry point
func main() {
	moke := Moke{"moke", 1}
	fmt.Printf(moke.Name)
}

type 名前 struct { }で構造体を定義します。あくまで構造体なので、{}の中に書くのはメンバー変数のみ。

メンバー変数は命名規則があり、先頭1文字が大文字か小文字かで挙動が変わります。

  • 大文字で始めると、パッケージ外からでもアクセスできう
  • 小文字で始めると、パッケージ内のみアクセスできる

この構造体のオブジェクトを作る時は、名前{初期化のパラメータ}で行います。これも2パターンあります。

// 定義した順にセット
moke := Moke{"moke", 1}
// 名前指定でセット
moke2 := Moke{Name: "moke2", Level: 2}

1つ上へ / ブログトップへ