GO 之运算符号的具体使用

 更新时间:2025年06月26日 08:48:23   作者:唯独不开心  
这篇文章主要介绍了GO运算符号的具体使用,包括算术、一元、关系、逻辑、位运算及赋值运算符,感兴趣的可以了解一下

算术运算符:

二元的运算符:+ - * / %

四则运算没啥好说的,从小就开始学习,最后一个 % 表示 求余数或者取模运算。

package main


import "fmt"

func main() {
    a := 1 + 2
    b := a - 1
    c := a * b
    d := c / a
    e := c % 3
    fmt.Println("a := 1 + 2 的结果是:", a)
    fmt.Println("b := a - 1 的结果是:", b)
    fmt.Println("c := a * b 的结果是:", c)
    fmt.Println("d := c / a 的结果是:", d)
    fmt.Println("e := c % 3 的结果是:", e)
}

一元运算符:++ -- 

  • 自增(++:将变量的值增加 1。

  • 自减(--:将变量的值减少 1。

  • 它们只能作为独立的语句使用,不能出现在表达式中。例如,a = b++ 或 c = --d 这样的写法在 Go 语言中是不允许的。

package main


import "fmt"

func main() {
    var i int = 1

    i++
    fmt.Println("i++ 的结果:", i)

    i--
    fmt.Println("i-- 的结果:", i)
}

关系运算符

关系运算符是用于比较两个操作数的值,并返回一个布尔值。

package main


import "fmt"


func main() {
    var a int = 10
    var b int = 20

    fmt.Println("a == b : ", a, b, a == b)
    fmt.Println("a != b : ", a, b, a != b)
    fmt.Println("a > b : ", a, b, a > b)
    fmt.Println("a < b : ", a, b, a < b)
    fmt.Println("a >= b : ", a, b, a >= b)
    fmt.Println("a <= b : ", a, b, a <= b)
}

逻辑运算符

逻辑运算符的操作数是布尔表达式,即表达式的结果是 true 或 false。C语言里面,表达式的值如果是零值则为false,非零值则为true。在这里行不通了,必须是操作的必须是布尔表达式,不能直对一个变量进行判断了!!!

package main

import "fmt"


func main() {
    a := true
    b := false
    c := true
    d := false

    
    fmt.Println("逻辑与(&&)运算:")
    fmt.Println(a, b, a && b)
    fmt.Println(a, c, a && c)
    fmt.Println(a, d, a && d)
    fmt.Println(b, d, b && d)

    fmt.Println("逻辑或(||)运算:")
    fmt.Println(a, b, a || b)
    fmt.Println(a, c, a || c)
    fmt.Println(a, d, a || d)
    fmt.Println(b, d, b || d)

    fmt.Println("逻辑非(!)运算:")
    fmt.Println(a, !a)
    fmt.Println(b, !b)
}

位运算符 

位运算就是将一个变量存放的数值转换成二进制的01表示的形式,然后再对每一个二进制位进行计算。主要包括 按位与(&)、按位或(|)、按位(^) 和 位清空(&^)。

  • 按位与(&) :相同位置的二进制数值,全为1,则值为1,否则为 0
  • 按位或(|):相同位置的二进制数值,全为0,则值为0,否则为 1
  • 按位(^):相同位置的二进制数值,不同,则值为1,否则为 0
  • 按位清空(&^):

第一种解释方法:

这里其实有个概念我给补充一下,=前面的值可以成为原始值,后面的值成为掩码,这么一来就好解释了。对于掩码来说如果二进制位的值为 0, 则取原始值对应的二进制位的数值,如果为1,则对应位的值为0

第二种解释方法:

我自己亲自计算了几次结果都正确,数值及算法,帮助理解。

a &^ = b 相当于 a = a & b ^ a 也相当于 a ^ b & a

package main

import "fmt"


func main() {
    a := 10
    b := 11
    fmt.Println(a, " & ", b, "=", a & b)
    fmt.Println(a, " | ", b, "=", a | b)
    fmt.Println(a, " ^ ", b, "=", a ^ b)
    fmt.Println(a, " &^ ", b, "=", a &^ b)
}

赋值运算符

赋值运算符是最常用的运算符了,其功能就是修改已经声明过的变量所存放的内容。赋值运算符也有很多结合算术、逻辑、位运算符的用法,思路都是一样的,以 += 为例。例如计算 a += 1, 可以等价于 a = a + 1,即先计算 a + 1 的值,再将 a + 1 的结果,放入 a 中。

package main

import "fmt"


func main() {
    var a int
    a = 10
    fmt.Println("执行 a = 10 后 : a = ", a)
    a += 10
    fmt.Println("执行 a += 10 后 : a = ", a)
    a -= 1
    fmt.Println("执行 a -= 1 后 : a = ", a)
    a *= 2
    fmt.Println("执行 a *= 2 后 : a = ", a)
    a /= 3
    fmt.Println("执行 a /= 3 后 : a = ", a)
    a %= 10
    fmt.Println("执行 a %= 10 后 : a = ", a)
    a <<= 1
    fmt.Println("执行 a <<= 1 后 : a = ", a)
    a >>= 1
    fmt.Println("执行 a >>= 1 后 : a = ", a)
    a &= 10
    fmt.Println("执行 a &= 10 后 : a = ", a)
    a |= 10
    fmt.Println("执行 a |= 10 后 : a = ", a)
    a ^= 10
    fmt.Println("执行 a %= 10 后 : a = ", a)
    a %= 10
    fmt.Println("执行 a %= 10 后 : a = ", a)
    a %= 10
    fmt.Println("执行 a %= 10 后 : a = ", a)

}

到此这篇关于GO 之运算符号的具体使用的文章就介绍到这了,更多相关GO 运算符号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Go 文件读取和写入操作全面讲解

    Go 文件读取和写入操作全面讲解

    这篇文章主要为大家介绍了Go文件的读取和写入操作示例的全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Go中的函数选项模式(Functional Options Pattern)详解

    Go中的函数选项模式(Functional Options Pattern)详解

    在 Go 语言中,函数选项模式是一种优雅的设计模式,用于处理函数的可选参数,本文将对其进行讲解,准备好了吗,快跟随着本文一探究竟吧
    2023-06-06
  • go语言打包的网页wasm示例详解

    go语言打包的网页wasm示例详解

    这篇文章主要为大家介绍了go打包网页wasm示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2022-09-09
  • Go语言JSON解析器gjson使用方法详解

    Go语言JSON解析器gjson使用方法详解

    这篇文章主要介绍了Go语言json解析框架与gjson,JSON 解析是我们不可避免的常见问题,在Go语言中,我们可以借助gjson库来方便的进行json属性的提取与解析,需要的朋友可以参考一下
    2022-12-12
  • 简单易用的Go逗号comma ok模式使用详解

    简单易用的Go逗号comma ok模式使用详解

    这篇文章主要为大家介绍了简单易用的Go逗号comma ok模式使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 利用Golang实现对配置文件加密

    利用Golang实现对配置文件加密

    在实际的应用中,配置文件通常包含了一些敏感的信息,如数据库密码、API密钥等,为了保护这些敏感信息不被恶意获取,我们可以对配置文件进行加密,本文将介绍如何使用Go语言实现对配置文件的加密,需要的朋友可以参考下
    2023-10-10
  • go语言中结构体tag使用小结

    go语言中结构体tag使用小结

    Go语言是一种静态类型、编译型的编程语言,其中结构体是一种非常重要的数据类型,本文就来介绍一下go语言中结构体tag使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Go中的应用配置管理详解

    Go中的应用配置管理详解

    这篇文章主要为大家介绍了Go中的应用配置管理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 详解Go如何基于现有的context创建新的context

    详解Go如何基于现有的context创建新的context

    在 Golang 中,context 包提供了创建和管理上下文的功能,那么在GO语言中如何基于现有的context创建新的context,下面小编就来和大家详细聊聊
    2024-01-01
  • Golang并发发送HTTP请求的各种方法

    Golang并发发送HTTP请求的各种方法

    在 Golang 领域,并发发送 HTTP 请求是优化 Web 应用程序的一项重要技能,本文探讨了实现此目的的各种方法,从基本的 goroutine 到涉及通道和sync.WaitGroup 的高级技术,需要的朋友可以参考下
    2024-02-02

最新评论