4.5. 基本类型和运算符

2018-12-26  本文已影响0人  曲镇

4.5. 基本类型和运算符

  1. 布尔型的值只可以是常量 true 或者 false
var b bool = true
  1. 可以使用 ==!= 来判断2个布尔值是否相同
  2. 布尔值的命名可以用 is 或者 Is 开头能够很好地提升代码的可读性,如:isSortedisFinishedisVisible

4.5.2.1 整型 int 和浮点型 float

  1. Go 语言支持整型浮点型数字,并且原生支持复数,其中位的运算采用补码。

  2. Go 也有基于架构的类型,例如:intuintuintptr

    • int 和 uint 在 32 位操作系统上,它们均使用 32 位(4 个字节),在 64 位操作系统上,它们均使用 64 位(8 个字节)。
    • uintptr 的长度为足够存放一个指针。
  3. Go 语言中没有 float 类型。

  4. 与操作系统架构无关的类型都有固定的大小
    整数

    • int8(-128 -> 127)
    • int16(-32768 -> 32767)
    • int32(-2,147,483,648 -> 2,147,483,647)
    • int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)

    无符号整数:

    • uint8(0 -> 255)
    • uint16(0 -> 65,535)
    • uint32(0 -> 4,294,967,295)
    • uint64(0 -> 18,446,744,073,709,551,615)

    浮点型(IEEE-754 标准):

    • float32(+- 1e-45 -> +- 3.4 * 1e38)
    • float64(+- 5 1e-324 -> 107 1e308)
  5. int 型是计算最快的一种类型。

  6. 尽可能地使用 float64,因为 math 包中所有有关数学运算的函数都会要求接收这个类型。

4.5.2.3 位运算

二元运算符

1 & 1 -> 1
1 & 0 -> 0
0 & 1 -> 0
0 & 0 -> 0
1 | 1 -> 1
1 | 0 -> 1
0 | 1 -> 1
0 | 0 -> 0
1 ^ 1 -> 0
1 ^ 0 -> 1
0 ^ 1 -> 1
0 ^ 0 -> 0
a := 1
b := 10
c := b &^ a  // a:1,  b:10, c:10
//----------------------------
a := 10
b := 10
c := b &^ a  // a:10,  b:10, c:0
上一篇下一篇

猜你喜欢

热点阅读