LoginSignup
0
0

More than 1 year has passed since last update.

【備忘録】Golangでenum風に利用する

Last updated at Posted at 2022-05-21

Golangでenum風に利用する。

Golangではenum型が提供されていないため、実装を工夫する事でenum風に利用する事ができます。

main.go
package main

import "fmt"

type Animal int

const (
	Unknown Animal = iota
	Dog
	Cat
	Horse
	Lion
	Tiger
	Rabbit
)

func (e Animal) Names() []string {
	return []string{
		"unknown",
		"犬",
		"猫",
		"馬",
		"ライオン",
		"トラ",
		"兎",
	}
}

func (e Animal) String() string {
	return e.Names()[e]
}

func main() {
	fmt.Printf("動物の名前は? %+v\n", Dog)
	fmt.Printf("動物の名前は? %+v\n", Cat)
	fmt.Printf("動物の名前は? %+v\n", Tiger)
}
実行結果
~/go/src/enum_go $ go run main.go
動物の名前は? 犬
動物の名前は? 猫
動物の名前は? トラ
package main

import "fmt"

type Animal string

const (
	Unknown Animal = "unknown"
	Dog = "犬"
	Cat = "猫"
	Horse = "馬"
	Lion = "ライオン"
	Tiger = "トラ"
	Rabbit = "兎"
)

func main() {
	var animal Animal
	animal = "犬"
	fmt.Println(animal)
}
実行結果
~/go/src/enum_go $ go run main.go
犬
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0