Si案件でGo言語を使ってみた!
- 11. @k_nishijima
引数に構造体を(常に)
適用しても良かったかも
11
> func CreateThumbnail(key string, width int) error {}
これはこれで問題ないけど、場合によってはリクエスト/レスポンスを
構造体にしておくと、引数の追加やデフォルト引数、
メソッド追加などで変化に対応しやすくなる(が、コードは増える(^_^;)
> type CreateThumbnailRequest struct {
> Key string
> Width int
> }
> func CreateThumbnail(r CreateThumbnailRequest) CreateThumbnailResult {}
- 24. @k_nishijima
定数の定義(ちと面倒)
24
> type TargetSystem int
> const (
> TargetA TargetSystem = iota + 1
> TargetB
> TargetC
> )
> func (t TargetSystem) String() string {
> switch t {
> case TargetA:
> return "AAA"
> case TargetB:
> return "BBB"
> case TargetC:
> return "CCC"
> }
> return "unknown"
> }
> func NewTargetSystem(target string) TargetSystem {
> switch target {
> case "AAA":
> return TargetA
> case "BBB":
> return TargetB
> case "CCC":
> return TargetC
> }
> return TargetA
> }