简介
运算符用于在程序运行时执行数学或逻辑运算。
Go 语言内置的运算符有:
算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符
算术运算符
运算符 描述 + 相加 - 相减 * 相乘 / 相除(保留整数) % 求余
A, B := 10 , 20
fmt. Println ( A+ B)
fmt. Println ( A- B)
fmt. Println ( A* B)
fmt. Println ( B/ A)
fmt. Println ( B% A)
fmt. Println ( float64 ( A) / 4 )
关系运算符
运算符 描述 == 检查两个值是否相等,如果相等返回 true否则返回 false。 != 检查两个值是否不相等,如果不相等返回 true否则返回 false。 > 检查左边值是否大于右边值,如果是返回 true否则返回 false。 < 检查左边值是否小于右边值,如果是返回 true否则返回 false。 >= 检查左边值是否大于等于右边值,如果是返回 true否则返回 false。 <= 检查左边值是否小于等于右边值,如果是返回 true否则返回 false。
A := 10
B := 20
fmt. Println ( A== B)
fmt. Println ( A!= B)
fmt. Println ( A> B)
fmt. Println ( A< B)
fmt. Println ( A>= B)
fmt. Println ( A<= B)
逻辑运算符
运算符 描述 && 逻辑与运算符。 如果两边的操作数都是 true,则条件 true,否则为 false。 || 逻辑或运算符。 如果两边的操作数有一个 true,则条件 true,否则为 false。 ! 逻辑非运算符。 如果条件为 true,则逻辑 NOT 条件 false,否则为 true。
A := true
B := false
fmt. Println ( A && B)
fmt. Println ( A || B)
fmt. Println ( ! ( A && B)
位运算符
运算符 描述 & 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。 | 按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或 ^ 按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 << 左移运算符"<<“是双目运算符。左移n位就是乘以2的n次方。 其功能把”<<“左边的运算数的各二进位全部左移若干位,由”<<"右边的数指定移动的位数,高位丢弃,低位补0 。 >> 右移运算符">>“是双目运算符。右移n位就是除以2的n次方。 其功能是把”>>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数,低位丢弃,高位补符号位。
A, B = 60 , 13
fmt. Println ( A& B)
fmt. Println ( A| B)
fmt. Println ( A^ B)
fmt. Println ( A<< 2 )
fmt. Println ( A>> 2 )
赋值运算符
运算符 描述 实例 = 简单的赋值运算符,将一个表达式的值赋给一个左值 C = A + B 将 A + B 表达式结果赋值给 C += 相加后再赋值 C += A 等价于 C = C + A -= 相减后再赋值 C -= A 等价于 C = C - A *= 相乘后再赋值 C *= A 等价于 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
A, B = 60 , 13
var C int
C = A+ B
fmt. Println ( C)
C += A
fmt. Println ( C)
C -= A
fmt. Println ( C)
C *= A
fmt. Println ( C)
C /= A
fmt. Println ( C)
C %= A
fmt. Println ( C)
C <<= 2
fmt. Println ( C)
C >>= 2
fmt. Println ( C)
C &= 2
fmt. Println ( C)
C ^= 2
fmt. Println ( C)
C |= 2
fmt. Println ( C)
其他运算符
运算符 描述 & 返回变量存储地址 * 指针变量 ++ 自增 – 自减 + 字符串拼接
A := 10
ptr := & A
fmt. Println ( "&A *(&A):" , ptr, * ptr)
A++
fmt. Println ( A)
A--
fmt. Println ( A)
fmt. Println ( "hello" + "world" )
优先级
优先级(值大,优先级高) 运算符 6 (),++,– 5 *, /, %, <<, >>, & 4 +,-, |, ^ 3 ==, !=, <, <=, >, >= 2 && 1 ||