7、Constants

常量被声明就像声明变量一样,但是使用的是const关键字。

常量可以被声明字符类型,字符串类型或数字类型。

 1 package main
2
3 import "fmt"
4
5 const Pi = 3.14
6
7 func main() {
8 const World = "世界"
9 fmt.Println("Hello", World)
10 fmt.Println("Happy", Pi, "Day")
11
12 const Truth = true
13 fmt.Println("Go rules?", Truth)
14 }
Hello 世界
Happy 3.14 Day
Go rules? true

数字常量是一个高精度的值。

判断一个无类型的常量,需要它的上下文。

试着打印needInt(Big)看看。

 1 package main
2
3 import "fmt"
4
5 const (
6 Big = 1<<100
7 Small = Big>>99
8 )
9
10 func needInt(x int) int { return x*10 + 1 }
11 func needFloat(x float64) float64 {
12 return x*0.1
13 }
14
15 func main() {
16 fmt.Println(needInt(Small))
17 fmt.Println(needFloat(Small))
18 fmt.Println(needFloat(Big))
19 }
21
0.2
1.2676506002282295e+29 

>> 右移
<< 左移

“<<”用法:
格式是:a<<m,a和m必须是整型表达式,要求m>=0。
功能:将整型数a按二进制位向左移动m位,高位移出后,低位补0。
“>>”用法:
格式是:a>>m,a和m必须是整型表达式,要求m>=0。
功能:将整型数a按二进制位向右移动m位,低位移出后,高位补0//有符号的数还是要以机器而定.

先左移8位,再右移8位,能把key的高8位清成0

假如key=0100110110010011的话(二进制)
先执行key<<8,key=1001001100000000
再执行key>>8,key=0000000010010011





你可能感兴趣的:(7、Constants)