分岐:switch
■ caseに式が書ける
■ breakは書かなくてよい
14
switcha {
case 1:
fmt.Println("a is 1")
default:
fmt.Println("default")
}
swtich {
case a == 1:
fmt.Println("a is 1")
}
caseをまたぐ際には、
fallthroughを使う
何もしないと
breakになる
15.
ユーザ型の定義
type <型名> <型リテラル>|<既存の型>
15
//組み込み型を別の型として定義
type Int int
// 他のパッケージを別の型として定義
type MyWriter io.Writer
// 型リテラルに名前をつける
type Person struct {
Name string
}
intとIntは別の型として扱われる
16.
メソッド
type で定義した型はメソッドのレシーバにできる
16
type Hexint
func (h Hex) String() string {
return fmt.Sprintf("%x", int(h))
}
// 100をHex型として代入
var hex Hex = 100
// Stringメソッドを呼び出す
fmt.Println(hex.String())
Playgroundで動かす
実際に作ってみたツール
■ Structタグを揃える
■ 汎用的なCMS
●式の評価を使ったツール
● コンテンツの配信条件を式で書く
55
type User struct {
ID int64 `json:"id" datastore:"ID"`
Name int64 `json:"name" datastore:"Name"`
}
type User struct {
ID int64 `json:"id" datastore:"ID"`
Name int64 `json:"name" datastore:"Name"`
}