当前位置:K88软件开发文章中心编程语言GoGo01 → 文章内容

Go 语言运算符

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-11 13:28:15

- c 的值为 61第三行 - c 的值为 49第四行 - c 的值为 240第五行 - c 的值为 15赋值运算符下表列出了所有Go语言的赋值运算符。运算符描述实例=简单的赋值运算符,将一个表达式的值赋给一个左值 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以下实例演示了赋值运算符的用法:package mainimport "fmt"func main() { var a int = 21 var c int c = a fmt.Printf("第 1 行 - = 运算符实例,c 值为 = %d\n", c ) c += a fmt.Printf("第 2 行 - += 运算符实例,c 值为 = %d\n", c ) c -= a fmt.Printf("第 3 行 - -= 运算符实例,c 值为 = %d\n", c ) c *= a fmt.Printf("第 4 行 - *= 运算符实例,c 值为 = %d\n", c ) c /= a fmt.Printf("第 5 行 - /= 运算符实例,c 值为 = %d\n", c ) c = 200; c <<= 2 fmt.Printf("第 6行 - <<= 运算符实例,c 值为 = %d\n", c ) c >>= 2 fmt.Printf("第 7 行 - >>= 运算符实例,c 值为 = %d\n", c ) c &= 2 fmt.Printf("第 8 行 - &= 运算符实例,c 值为 = %d\n", c ) c ^= 2 fmt.Printf("第 9 行 - ^= 运算符实例,c 值为 = %d\n", c ) c |= 2 fmt.Printf("第 10 行 - |= 运算符实例,c 值为 = %d\n", c )}以上实例运行结果:第 1 行 - = 运算符实例,c 值为 = 21第 2 行 - += 运算符实例,c 值为 = 42第 3 行 - -= 运算符实例,c 值为 = 21第 4 行 - *= 运算符实例,c 值为 = 441第 5 行 - /= 运算符实例,c 值为 = 21第 6行 - <<= 运算符实例,c 值为 = 800第 7 行 - >>= 运算符实例,c 值为 = 200第 8 行 - &= 运算符实例,c 值为 = 0第 9 行 - ^= 运算符实例,c 值为 = 2第 10 行 - |= 运算符实例,c 值为 = 2其他运算符下表列出了Go语言的其他运算符。运算符描述实例&返回变量存储地址&a; 将给出变量的实际地址。*指针变量。*a; 是一个指针变量以下实例演示了其他运算符的用法:package mainimport "fmt"func main() { var a int = 4 var b int32 var c float32 var ptr *int /* 运算符实例 */ fmt.Printf("第 1 行 - a 变量类型为 = %T\n", a ); fmt.Printf("第 2 行 - b 变量类型为 = %T\n", b ); fmt.Printf("第 3 行 - c 变量类型为 = %T\n", c ); /* & 和 * 运算符实例 */ ptr = &a    /* 'ptr' 包含了 'a' 变量的地址 */ fmt.Printf("a 的值为 %d\n", a); fmt.Printf("*ptr 为 %d\n", *ptr);}以上实例运行结果:第 1 行 - a 变量类型为 = int第 2 行 - b 变量类型为 = int32第 3 行 - c 变量类型为 = float32a 的值为 4*ptr 为 4运算符优先级有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:优先级运算符7 ^ !6 * / % > & &^5 + - | ^4 == != = >3 2 &&1 ||当然,你可以通过使用括号来临时提升某个表达式的整体运算优先级。以上实例运行结果:package mainimport "fmt"func main() { var a int = 20 var b int = 10 var c int = 15 var d int = 5 var e int; e = (a + b) * c / d; // ( 30 * 15 ) / 5 fmt.Printf("(a + b) * c / d 的值为 :





%d\n", e ); e = ((a + b) * c) / d; // (30 * 15 ) / 5 fmt.Printf("((a + b) * c) / d 的值为 :





%d\n" , e ); e = (a + b) * (c / d); // (30) * (15/5) fmt.Printf("(a + b) * (c / d) 的值为 :





%d\n", e ); e = a + (b * c) / d; // 20 + (150/5) fmt.Printf("a + (b * c) / d 的值为 :





%d\n" , e ); }以上实例运行结果:(a + b) * c / d 的值为 :





90((a + b) * c) / d 的值为 :





90(a + b) * (c / d) 的值为 :





90a + (b * c) / d 的值为 :





50

上一页  [1] [2] 


Go 语言运算符