Zero-initialization
Zero-initialization is a source of confusion sometimes. They are default values for many types that are assigned even if you don't provide a value for the definition. Following are the zero-initialization for various types:
The
falseinitialization forbooltype.Using
0values forinttype.Using
0.0forfloattype.Using
""(empty strings) forstringtype.Using
nilkeyword for pointers, functions, interfaces, slices, channels and maps.Empty
structfor structures without fields.Zero-initialized
structfor structures with fields. The zero value of a structure is defined as the structure that has its fields initialized as zero value too.
Zero-initialization is important when programming in Go because you won't be able to return a nil value if you have to return an int type or a struct. Keep this in mind, for example, in functions where you have to return a bool value. Imagine that you want to know if a number is divisible by a different number but you pass 0 (zero) as the divisor...