Unlike other languages, Go does not support enum. However, it is pretty straightforward to create something that behaves similar to enum. There are a lot of articles on the internet on how to create an enum in Go, which pretty much looks like below.
package main
import (
"fmt"
)
type myType string
const (
Foo myType = "foo"
Bar myType = "bar"
)
func doSomething(t myType) {
fmt.Println(t)
}
func main() {
// baz := "baz"
// This will result in compilation error:
// "cannot use baz (type string) as type myType in argument to doSomething"
// doSomething(baz)
// However, this is allowed.
doSomething("baz")
}
As you can see in the code above, calling doSomething("baz") does not result in a compilation error. To fix that, we can change the code to look like below.
package main
import (
"fmt"
)
type myType string
const (
Foo myType = "foo"
Bar myType = "bar"
)
func doSomething(t *myType) {
fmt.Println(*t)
}
func main() {
// This will now result in a compilation error.
// doSomething("baz")
baz := myType("baz")
doSomething(&baz)
}
No comments:
Post a Comment