In Go Tour 37 I faced with strange expression 1 << uint(i)
package main
import "fmt"
func main() {
pow := make([]int, 10)
for i := range pow {
pow[i] = 1 << uint(i)
}
for _, value := range pow {
fmt.Printf("%d
", value)
}
}
What do operator <<
do?
The program got the output:
1
2
4
8
16
32
64
128
256
512
Program exited.