前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang中的运算符

Golang中的运算符

作者头像
周小末天天开心
发布2023-10-16 12:21:36
2360
发布2023-10-16 12:21:36
举报
文章被收录于专栏:周小末天天开心

运算符

算术运算符

Go语言中的算术运算符包括加、减、乘、除和取模等。需要注意的是,除法运算符/和取模运算符%只能用于整数类型,而不能用于浮点数类型。如果要进行浮点数除法,需要使用类型转换或浮点数常量。另外,Go语言中的自增自减运算符只能用于语句中,不能用于表达式中。

用于进行基本的算术运算,包括加法、减法、乘法、除法、取模等。常用的算术运算符如下:

运算符

描述

+

加法

-

减法

*

乘法

/

除法

%

取模/取余数

代码案例:
代码语言:javascript
复制
package main

import "fmt"

func main() {
    a := 10
    b := 3
    
    // 加法
    fmt.Println(a + b)  // 13
    
    // 减法
    fmt.Println(a - b)  // 7
    
    // 乘法
    fmt.Println(a * b)  // 30
    
    // 除法
    fmt.Println(a / b)  // 3
    
    // 取余
    fmt.Println(a % b)  // 1
}

关系运算符

Go语言中的关系运算符包括等于、不等于、大于、小于、大于等于和小于等于等。需要注意的是,比较运算符只能用于可比较的类型,例如整数、浮点数、字符串、指针等。而结构体、数组、函数等复杂类型则需要自定义比较函数或使用反射机制进行比较。

运算符

描述

==

检查两个值是否相等

!=

检查两个值是否不相等

>

检查左边的值是否大于右边的值

<

检查左边的值是否小于右边的值

>=

检查左边的值是否大于等于右边的值

<=

检查左边的值是否小于等于右边的值

代码案例:
代码语言:javascript
复制
package main

import "fmt"

func main() {
    a := 10
    b := 3
    
    // 等于
    fmt.Println(a == b)  // false
    
    // 不等于
    fmt.Println(a != b)  // true
    
    // 大于
    fmt.Println(a > b)   // true
    
    // 小于
    fmt.Println(a < b)   // false
    
    // 大于等于
    fmt.Println(a >= b)  // true
    
    // 小于等于
    fmt.Println(a <= b)  // false
}

逻辑运算符

Go语言中的逻辑运算符包括与、或、非等。需要注意的是,与运算符&&和或运算符||具有短路特性,即只要能确定整个表达式的值就会停止计算。而非运算符!只能用于布尔类型,而不能用于整数类型。

运算符

描述

&&

逻辑 AND 运算符。如果两个操作数都是 true,则条件为 true,否则为 false

||

逻辑 OR 运算符。如果两个操作数中有任意一个操作数为 true,则条件为 true,否则为 false

!

逻辑 NOT 运算符。用于反转操作数的逻辑状态。如果条件为 true,则逻辑 NOT 运算符会将其变为 false

代码案例:
代码语言:javascript
复制
package main

import "fmt"

func main() {
    a := true
    b := false
    
    // 逻辑与
    fmt.Println(a && b)  // false
    
    // 逻辑或
    fmt.Println(a || b)  // true
    
    // 逻辑非
    fmt.Println(!a)     // false
}

位运算符

Go语言中的位运算符包括按位与、按位或、按位异或、按位左移和按位右移等。需要注意的是,位运算符只能用于整数类型,而不能用于浮点数类型。另外,位运算符的优先级比算术运算符和比较运算符低,需要使用括号来控制优先级。

运算符

描述

&

按位与运算符。对两个操作数的每个二进制位执行逻辑 AND 操作

|

按位或运算符。对两个操作数的每个二进制位执行逻辑 OR 操作

^

按位异或运算符。对两个操作数的每个二进制位执行逻辑 XOR 操作

<<

左移运算符。将左操作数的所有位向左移动指定的位数

>>

右移运算符。将左操作数的所有位向右移动指定的位数

代码案例:
代码语言:javascript
复制
package main

import "fmt"

func main() {
    a := 60
    b := 13
    
    // 按位与
    fmt.Println(a & b)   // 12
    
    // 按位或
    fmt.Println(a | b)   // 61
    
    // 按位异或
    fmt.Println(a ^ b)   // 49
    
    // 左移
    fmt.Println(a << 2)  // 240
    
    // 右移
    fmt.Println(a >> 2)  // 15
}

赋值运算符

Go语言中的赋值运算符包括简单赋值、加等于、减等于、乘等于、除等于、模等于、与等于、或等于、异或等于等。需要注意的是,赋值运算符可以同时使用于多个变量,例如a, b := 1, 2。另外,赋值运算符的优先级比大部分运算符都低,但比逻辑运算符高。

运算符

描述

=

简单赋值运算符。将右边表达式的值赋给左边的变量

+=

加等于运算符。将右边表达式的值加到左边的变量上

-=

减等于运算符。将右边表达式的值从左边的变量中减去

*=

乘等于运算符。将右边表达式的值乘到左边的变量上

/=

除等于运算符。将左边变量的值除以右边表达式的值

%=

模等于运算符。将左边变量的值对右边表达式的值取模

代码案例:
代码语言:javascript
复制
package main

import "fmt"

func main() {
    a := 10
    b := 3
    
    // 简单赋值
    c := a
    fmt.Println(c)  // 10
    
    // 加法赋值
    a += b
    fmt.Println(a)  // 13
    
    // 减法赋值
    a -= b
    fmt.Println(a)  // 10
    
    // 乘法赋值
    a *= b
    fmt.Println(a)  // 30
    
    // 除法赋值
    a /= b
    fmt.Println(a)  // 10 / 3 = 3
    
    // 取余赋值
    a %= b
    fmt.Println(a)  // 1
}

其他运算符

Go语言中还有一些其他的运算符,例如取地址运算符&、指针运算符*、sizeof运算符等。需要注意的是,取地址运算符和指针运算符只能用于指针类型,而sizeof运算符只能用于静态类型。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 运算符
    • 算术运算符
      • 代码案例:
    • 关系运算符
      • 代码案例:
    • 逻辑运算符
      • 代码案例:
    • 位运算符
      • 代码案例:
    • 赋值运算符
      • 代码案例:
    • 其他运算符
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档