go言語type使用テクニック

2628 ワード

import "fmt"

type Rank int 

const (
        Rank001 Rank = iota
        Rank002
        Rank003
        Rank004
)

var rewards = [...]string{
        "  1","  2","  3","  4",
}
        

func (r Rank) getReward() string {
        return rewards[r]
}

func main() {
        
        fmt.Println(Rank003.getReward())
}

このようにして、ランキングを奨励に柔軟に対応させ、「オブジェクト向け」にランキング、このintタイプをランキングとして宣言し、メンバー関数を追加します.通常の方式はC/C++,Javaでは,直接2つの次元数グループで目を覚ます処理が行われているが,相対的にgo言語という方式は,本当に素晴らしい!
go time/time.go:
   108	type Weekday int
   109	
   110	const (
   111		Sunday Weekday = iota
   112		Monday
   113		Tuesday
   114		Wednesday
   115		Thursday
   116		Friday
   117		Saturday
   118	)
   119	
   120	var days = [...]string{
   121		"Sunday",
   122		"Monday",
   123		"Tuesday",
   124		"Wednesday",
   125		"Thursday",
   126		"Friday",
   127		"Saturday",
   128	}
   129	
   130	// String returns the English name of the day ("Sunday", "Monday", ...).
   131	func (d Weekday) String() string { return days[d] }