首页 > 其他分享 >Go 运算符

Go 运算符

时间:2023-09-02 23:33:58浏览次数:44  
标签:10 等同于 fmt 运算符 Go main 赋值

运算符用于对变量和值执行操作。

加号运算符(+)将两个值相加,如下面的示例所示:

示例代码:

package main

import (
  "fmt"
)

func main() {
  var a = 15 + 25
  fmt.Println(a)
}

尽管加号运算符通常用于将两个值相加,但它也可以用于将变量和值相加,或者将一个变量和另一个变量相加。

示例代码:

package main

import (
  "fmt"
)

func main() {
  var (
    sum1 = 100 + 50   // 150 (100 + 50)
    sum2 = sum1 + 250 // 400 (150 + 250)
    sum3 = sum2 + sum2 // 800 (400 + 400)
  )
  fmt.Println(sum3)
}

算术运算符

算术运算符用于执行常见的数学操作。

  • +:加法,将两个值相加,如 x + y
  • -:减法,从一个值中减去另一个值,如 x - y
  • *:乘法,将两个值相乘,如 x * y
  • /:除法,将一个值除以另一个值,如 x / y
  • %:模运算,返回除法余数,如 x % y
  • ++:自增,将变量的值增加1,如 x++
  • --:自减,将变量的值减少1,如 x--
    将10乘以5,并打印结果。
package main

import (
  "fmt"
)

func main() {
  fmt.Print(10 * 5)
}

赋值运算符

赋值运算符用于将值分配给变量。在下面的示例中,我们使用赋值运算符(=)将值10分配给名为x的变量:

package main

import (
  "fmt"
)

func main() {
  var x = 10
  fmt.Println(x)
}

加法赋值运算符(+=)将一个值添加到变量中:

package main

import (
  "fmt"
)

func main() {
  var x = 10
  x += 5
  fmt.Println(x)
}

所有赋值运算符的列表:

  • =:分配,如 x = 5
  • +=:加法赋值,如 x += 3(等同于 x = x + 3)
  • -=:减法赋值,如 x -= 3(等同于 x = x - 3)
  • *=:乘法赋值,如 x *= 3(等同于 x = x * 3)
  • /=:除法赋值,如 x /= 3(等同于 x = x / 3)
  • %=:模赋值,如 x %= 3(等同于 x = x % 3)
  • &=:按位与赋值,如 x &= 3(等同于 x = x & 3)
  • |=:按位或赋值,如 x |= 3(等同于 x = x | 3)
  • ^=:按位异或赋值,如 x ^= 3(等同于 x = x ^ 3)
  • >>=:有符号右移赋值,如 x >>= 3(等同于 x = x >> 3)
  • <<=:左移赋值,如 x <<= 3(等同于 x = x << 3)

比较运算符

比较运算符用于比较两个值。注意:比较的返回值要么是true(1),要么是false(0)。在下面的示例中,我们使用大于运算符(>)来判断5是否大于3:

package main

import (
  "fmt"
)

func main() {
  var x = 5
  var y = 3
  fmt.Println(x > y) // 返回1(true),因为5大于3
}

所有比较运算符的列表:

  • ==:等于,如 x == y
  • !=:不等于,如 x != y
  • >:大于,如 x > y
  • <:小于,如 x < y
  • >=:大于等于,如 x >= y
  • <=:小于等于,如 x <= y

逻辑运算符

逻辑运算符用于确定变量或值之间的逻辑关系:

  • &&:逻辑与,如果两个语句都为真,则返回true,如 x < 5 && x < 10
  • ||:逻辑或,如果其中一个语句为真,则返回true,如 x < 5 || x < 4
  • !:逻辑非,将结果反转,如果结果为true,则返回false,如 !(x < 5 && x < 10)

位运算符

位运算符用于处理二进制数字:

  • &:与运算,如果两个位都为1,则将结果位设置为1,如 x & y
  • |:或运算,如果两个位中至少一个为1,则将结果位设置为1,如 x | y
  • ^:异或运算,如果只有一个位为1,则将结果位设置为1,如 x ^ y
  • <<:左移,通过从右边添加零来左移位,如 x << 2
  • >>:右移,通过从左边移除位来右移,如 x >> 2

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

标签:10,等同于,fmt,运算符,Go,main,赋值
From: https://www.cnblogs.com/xiaowange/p/17674404.html

相关文章

  • jetbrains GoLang设置编写proto文件的实时模板
    具体步骤1. 首先,先创建一个模板组,我这里创建为"proto"。2.下面这张图是我的模板组中的内容3.具体实时模板缩写:enum描述:enumname{}模板文字:enum$name${$END$}适用于:协议缓存区中的Other缩写:import描述:import"";模板文字:import"$file$";$END$适用......
  • 第一次接触golang的体验
    ay01今天是第一次接触golang,之前学java用了不少精力,借着这次的青训营有机会学习go来开发后端,是一次难得的经历。经过这几个小时的学习,已经了解了大部分基础语法,说实话,比起java来说,语法还是有很大不同,适应起来比较慢,网络上的教程也比较少,一个scan语法我都花了不少时间,真是惭愧。不......
  • Django优化模版拆分css文件
    Django优化模版拆分css文件可以发现前面写项目将css放在html一个文件中,虽然简单省事但是带来的问题就是文件过于冗长不方便查看和修改。这里做个分离优化提供两种方式方式一:html和css存放同一目录 将原因html中</style>内容移动到home.css文件中,然后再html移动空白位置,替换......
  • Go语言 Http库 注册激活用户 实践
    背景需要在公司的平台上面,批量给用户注册,并激活账号信息。主要是通过console接口进行激活和注册,所以要使用到Go语言的http库,在此记录。步骤分解console页面注册获取注册和激活接口需要的信息。通过postman验证接口。关闭服务IP注册限制(公司代码相关)。通过代码进行注册激活。恢......
  • EasyCVR视频融合平台Linux环境下CGO调用C接口推流异常,H.265转H.264失败的原因是?
    EasyCVR视频融合云平台采用云边端一体化架构,可以将分散在仓储各处的前端监控设备(如IPC、NVR等)集中接入,并提供实时视频监控、视频录像、云存储、录像检索与回放、智能告警、云台控制、平台级联、服务器集群等视频能力服务。通过实时高清视频监控,仓储管理人员可以高效地监管人员和货......
  • go并发编程系列五:线程分组及控制线程的合作执行
    背景:线程的合作执行,体现的是团结协作,应该是比较理想的状态,如果人人都能够少一些算计、多一点互帮互助,那该有多好啊?班主任不是资本家,班级更应该提倡团队精神,学生之间不应该竞争,应该互相协作!这篇文章以团结协作为出发点,讲解线程的合作执行。 TRANSLATEwithxEnglish......
  • go mod有关简单小结
    测试环境MAC CatalinaGO1.19VSCode包管理工具gomod在Golang1.11版本之前如果我们要自定义包的话必须把项目放在GOPATH目录。Go1.11版本之后无需手动配置环境变量,使用gomod管理项目,也不需要非得把项目放到GOPATH指定目录下,你可以在你磁盘的任何位置新建一个项目,Go1......
  • go并发编程系列四:线程分组及控制线程的执行
    背景:在上一篇中,作为班主任的你,对班级的管理初见成效,但理想和现实总有差距,理想情况下,从接手一个调皮的班级到班级的管理井井有条,是从0到1的跨越,没有中间的过渡阶段,然而,现实是:班级里少不了调皮的学生,对于这样的情况,应该怎么办呢?这篇文章讲解的正是现实中从0到1的过渡阶段,本文仅以讲......
  • go并发编程系列三:线程的顺序执行
    背景:在go并发编程系列二,你作为班主任,接手了有三个学生的班级,现状是这三个学生很调皮,看起来乱糟糟的,三个学生就是三个线程,怎么变的有序呢?答案是:给线程加锁!加锁需要使用go标准包的sync.Mutex,这是一个互斥锁。给线程加锁的代码:packageconcurrentimport("fmt""sync"......
  • go并发编程系列二:线程的并发执行
    新建concurrent文件夹,在该文件夹下创建concurrent.go,代码如下:packageconcurrentimport("fmt""time")funcThreadZhangSan(){fori:=1;i<=3;i++{fmt.Println("张三:",i)time.Sleep(time.Millisecond*50......