Use zero values to your advantage in go
Published
In Go, when a value is initialized without a initializer value it returns the “zero value” of that type.
In our contrived example below, when we initialize the User
struct without an initialization value, we get the zero value of the struct. So when we get the Admin
value, it returns the zero value for a boolean, which is false
:
package main
import "fmt"
type User struct {
Name string
Admin bool
}
func main() {
u := User{}
fmt.Println(u.Admin) //=> false
}
We didn’t explicity set Admin
to false
; Go did that for us.
The following zero values are created for their respective types:
- bool:
false
- string:
""
- int:
0
- float:
0.0
- pointers, functions, interfaces, slices, channels, and maps:
nil
Next time you’re working in go, think how you can use zero values to your advantage.
Learn more about zero values here.
Like this post?
Why don't you let me know on Twitter:
@danawoodman