1.1.1. Go基本数据类型与运算符
基本数据类型
数值类型型
1、整型
- uint8 无符号 8 位整型 (0 到 255)
- uint16 无符号 16 位整型 (0 到 65535)
- uint32 无符号 32 位整型 (0 到 4294967295)
- uint64 无符号 64 位整型 (0 到 18446744073709551615)
- int8 有符号 8 位整型 (-128 到 127)
- int16 有符号 16 位整型 (-32768 到 32767)
- int32 有符号 32 位整型 (-2147483648 到 2147483647)
- int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
2、浮点型
float32
IEEE-754 32位浮点型数
float64
IEEE-754 64位浮点型数
complex64
32 位实数和虚数
complex128
64 位实数和虚数
3、其他
byte
类似 uint8
rune
类似 int32
uint
32 或 64 位
int
与 uint 一样大小
uintptr
无符号整型,用于存放一个指针
布尔型
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true
字符串型
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本
var str string
str = "Hello World"
运算符
算术运算符
+ - * / %(求余) ++ --
关系运算符
== != > < >= <=
逻辑运算符
运算符 | 描述 | ||
---|---|---|---|
&& | 所谓逻辑与运算符。如果两个操作数都非零,则条件变为真 | ||
\ | \ | 所谓的逻辑或操作。如果任何两个操作数是非零,则条件变为真 | |
! | 所谓逻辑非运算符。使用反转操作数的逻辑状态。如果条件为真,那么逻辑非操后结果为假 |
位运算符
A | B | A&B | A\ | B | A^B |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | |
0 | 1 | 0 | 1 | 1 | |
1 | 1 | 1 | 1 | 0 | |
1 | 0 | 0 | 1 | 1 |
这里最难理解的就是^了,只要认为AB两者都相同的时候,为0,其他都为1
运算 | 描述 | 示例 | ||
---|---|---|---|---|
& | 二进制与操作副本位的结果,如果它存在于两个操作数 | (A & B) = 12, 也就是 0000 1100 | ||
\ | 二进制或操作副本,如果它存在一个操作数 | (A \ | B) = 61, 也就是 0011 1101 | |
^ | 二进制异或操作副本,如果它被设置在一个操作数但不能同时是比特 | (A ^ B) = 49, 也就是 0011 0001 | ||
<< | 二进制左移位运算符。左边的操作数的值向左移动由右操作数指定的位数 | A << 2 will give 240 也就是 1111 0000 | ||
>> | 二进制向右移位运算符。左边的操作数的值由右操作数指定的位数向右移动 | A >> 2 = 15 也就是 0000 1111 |
赋值运算符
运算符 | 描述 | 示例 | |||
---|---|---|---|---|---|
= | 简单的赋值操作符,分配值从右边的操作数左侧的操作数 | C = A + B 将分配A + B的值到C | |||
+= | 相加并赋值运算符,它增加了右操作数左操作数和分配结果左操作数 | C += A 相当于 C = C + A | |||
-= | 减和赋值运算符,它减去右操作数从左侧的操作数和分配结果左操作数 | C -= A 相当于 C = C - A | |||
*= | 乘法和赋值运算符,它乘以右边的操作数与左操作数和分配结果左操作数 | C = A is equivalent to C = C A | |||
/= | 除法赋值运算符,它把左操作数与右操作数和分配结果左操作数 | C /= A 相当于 C = C / A | |||
%= | 模量和赋值运算符,它需要使用两个操作数的模量和分配结果左操作数 | C %= A 相当于 C = C % A | |||
<<= | 左移位并赋值运算符 | C <<= 2 相同于 C = C << 2 | |||
>>= | 向右移位并赋值运算符 | C >>= 2 相同于 C = C >> 2 | |||
&= | 按位与赋值运算符 | C &= 2 相同于 C = C & 2 | |||
^= | 按位异或并赋值运算符 | C ^= 2 相同于 C = C ^ 2 | |||
\ | = | 按位或并赋值运算符 | C \ | = 2 相同于 C = C \ | 2 |