Go Learning Notes Go Language Basics numeric (range) about nil struct (allocation) slice escape analysis memory profiling go routines synchronization defer interface shasum type-safe enum