golang 运算符

目录

  • 1. golang 运算符
    • 1.1. Types of Operators
    • 1.2. Bitwise Operators (位运算符)
    • 1.3. Logical Operators (逻辑运算符)
    • 1.4. Arithmetic Operators (算术运算符)
    • 1.5. Assignment Operators (赋值运算符)
    • 1.6. Comparison Operators (比较运算符)

1. golang 运算符

1.1. Types of Operators

  1. Bitwise Operators (位运算符)
  2. Logical Operators (逻辑运算符)
  3. Arithmetic Operators (算术运算符)
  4. Assignment Operators (赋值运算符)
  5. Comparison Operators (比较运算符)

1.2. Bitwise Operators (位运算符)

package mainimport "fmt"func main() {x := 3y := 5z := false// 3 -> 011// 5 -> 101fmt.Println("X AND Y = ", x & y)fmt.Println("X OR Y = ", x | y)fmt.Println("X EXOR Y = ", x ^ y)fmt.Println("X Right Shift 1  = ", x >> 1)fmt.Println("X Right Shift 2  = ", x >> 2)fmt.Println("Y Left Shift 1 = ", y << 1)
}
$ go run bitwise/main.goX AND Y =  1
X OR Y =  7
X EXOR Y =  6
X Right Shift 1  =  1
X Right Shift 2  =  0
Y Left Shift 1 =  10

很多编程语言使用 ~ 作为一元按位取反(NOT)操作符, Go 重用 ^ XOR 操作符来按位取反:

// 错误的取反操作
func main() {fmt.Println(~2) // bitwise complement operator is ^
}// 正确示例
func main() {var d uint8 = 2fmt.Printf("%08b\n", d)     // 00000010fmt.Printf("%08b\n", ^d)    // 11111101
}

同时 ^ 也是按位异或(XOR)操作符:

10000010 ^ 00000010 = 10000000

1.3. Logical Operators (逻辑运算符)

package mainimport "fmt"func main() {a := 45b := "Something"fmt.Println(a > 40 && b == "Something")fmt.Println(a < 40 && b == "Something")fmt.Println(a < 40 || b == "Something")fmt.Println(a < 40 || b != "Something")fmt.Println(!(a < 40 || b != "Something"))
}
$ go run logical/main.gotrue
false
true
false
true

1.4. Arithmetic Operators (算术运算符)

package mainimport "fmt"func main() {a := 30b := 50fmt.Println("A + B = ", a+b)fmt.Println("A - B = ", a-b)fmt.Println("A * B = ", a*b)fmt.Println("A / B = ", a/b)fmt.Println("A % B = ", a%b)
}
$ go run arithmetic/main.go
A + B =  80
A - B =  -20
A * B =  1500
A / B =  0
A % B =  30
package mainimport "fmt"func main() {k := 3j := 20fmt.Println("k = ", k)fmt.Println("j = ", j)k++j--fmt.Println("k = ", k)fmt.Println("j = ", j)
}
$ go run arithmetic/main.gok =  3
j =  20k =  4
j =  19

1.5. Assignment Operators (赋值运算符)

package mainimport "fmt"func main() {var a int = 100b := 20fmt.Println("a = ", a)fmt.Println("b = ", b)a += 30fmt.Println("a = ", a)b -= 5fmt.Println("b = ", b)a *= bfmt.Println("a = ", a)fmt.Println("b = ", b)a /= bfmt.Println("a = ", a)fmt.Println("b = ", b)a %= bfmt.Println("a = ", a)fmt.Println("b = ", b)
}
$ go run assignment/main.goa =  100
b =  20a =  130
b =  15a =  1950
b =  15a =  130
b =  15a =  10
b =  15

1.6. Comparison Operators (比较运算符)

package mainimport "fmt"func main() {a := 45b := 12fmt.Println("Is A equal to B ? ", a == b)fmt.Println("Is A not equal to B ? ", a != b)fmt.Println("Is A greater than B ? ", a > b)fmt.Println("Is A less than B ? ", a < b)fmt.Println("Is A greater than or equal to B ? ", a >= b)fmt.Println("Is A less than or equal to B ? ", a <= b)
}
$ go run comparison/main.goIs A equal to B ?  false
Is A not equal to B ?  true
Is A greater than B ?  true
Is A less than B ?  false
Is A greater than or equal to B ?  true
Is A less than or equal to B ?  false

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/81484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言练习58:⾃定义类型:结构体

⾃定义类型&#xff1a;结构体 结构体的概念 结构是⼀些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构体是一个种自定义的数据类型&#xff0c;它可以由很多个默认数据类型组成。它主要用于描述复杂场景下的变量。 例如&#xff0c;想…

文件上传漏洞~操作手册

目录 上传文件一般过滤方式 客服端校验 服务端校验 黑白名单机制 常规文件上传漏洞绕过 客户端绕过 1.游览器禁用JavaScript 2.正常burp suite抓包改包 服务端绕过 1.Content-Type绕过 2.黑名单绕过 1&#xff09;命名规则绕过 2&#xff09;大小写绕过 3&#x…

vue入门及小项目小便签条

vue 框架:是一个半成品软件&#xff0c;是一套可重用的&#xff0c;通用的&#xff0c;软件基础代码模型。基于框架进行开发&#xff0c;更加快捷 &#xff0c;更加高效 v-bind为HTML标签绑定属性值&#xff0c;如设置href&#xff0c;css样式等 v-model在表单元素上创建双向数…

C++ 太卷,转 Java?

最近看到知乎、牛客等论坛上关于 C 很多帖子&#xff0c;比如&#xff1a; 2023年大量劝入C 2023年还建议走C方向吗&#xff1f; 看了一圈&#xff0c;基本上都是说 C 这个领域唯一共同点就是都使用 C 语言&#xff0c;其它几乎没有相关性。 的确是这样&#xff0c;比如量化交…

c++模版元编程-函数模版

C模板元编程&#xff08;Template Metaprogramming&#xff0c;TMP&#xff09;是一种使用C模板语言特性进行编程的技术&#xff0c;主要用于在编译期间进行计算和类型推导。通过使用TMP&#xff0c;可以在编译期间生成代码&#xff0c;从而实现更高效和更灵活的程序设计。 TM…

VM ware中Linux连网

在公司时,想搭建一下docker,结果发现连不上网,那就自己动手操作一下 一、联网配置 1.1 ping 发现ping不通&#xff0c;说明虚拟机此时无法与外界网络互连&#xff0c;需要修改设置联网 1.2 ifconfig查看网络配置 注意第一行显示的是ens33还是ens32,后面配置会用到 1.3 获取ro…

达梦数据库如何收集统计信息?

1、收集shema统计信息 CALL DBMS_STATS.GATHER_SCHEMA_STATS(大写的用户名,100,TRUE,FOR ALL COLUMNS SIZE AUTO); 2、收集表的统计信息 CALL DBMS_STATS.GATHER_TABLE_STATS(大写的用户名, 大写的表名,NULL,100,TRUE,FOR ALL COLUMNS SIZE AUTO); 3、收集索引的统计信息 CALL…

WebGL模型视图投影矩阵

WebGL透视投影_山楂树の的博客-CSDN博客中的PerspectiveView代码一个问题是&#xff0c;我们用了一大段枯燥的代码来定义所有顶点和颜色的数据。示例中只有6个三角形&#xff0c;我们还可以手动管理这些数据&#xff0c;但是如果三角形的数量进一步增加的话&#xff0c;那可真就…

如何在 Excel 中求平方根

需要在 Excel 中求一个数字的平方根吗&#xff1f;使用几个内置的 Excel 函数和公式可以轻松计算平方根。在本分步指南中&#xff0c;您将学习在 Excel 中计算平方根的 5 种不同方法&#xff0c;包括使用 SQRT 函数、POWER 函数、指数公式、VBA 代码和 Power Query。跟随教程&a…

TrOCR – 基于 Transformer 的 OCR 入门

一、TrOCR 架构 近些年,光学字符识别 (OCR) 出现了多项创新。它对零售、医疗保健、银行和许多其他行业的影响是巨大的。与深度学习的许多其他领域一样,OCR领域也看到了Transformer 神经网络的重要性和影响。如今,出现了像TrOCR(Transformer OCR)这样的模型,它在准确性方面…

查看实时日志

要查看实时日志&#xff0c;您可以使用以下几种常见的方法&#xff1a; 使用 tail 命令&#xff1a; tail 命令可以显示文件的末尾内容&#xff0c;您可以结合 -f 参数实时地查看日志文件的更新。例如&#xff1a; tail -f /path/to/logfile.log 将 /path/to/logfile.log 替换…

项目知识点总结-分页(三)

后端分页查询接口&#xff1a; Controller Service&#xff1a; Mapper&#xff1a; //分页搜索会议的方法List<SearchMeeting> getAllSearchMeeting(Param("sm") SearchMeeting searchMeeting,Param("page") Integer page,Param("pageSize&q…

games101 作业2

题目 光栅化一个三角形 1. 创建三角形的 2 维 bounding box。 2. 遍历此 bounding box 内的所有像素&#xff08;使用其整数索引&#xff09;。然后&#xff0c;使用像素中心的屏幕空间坐标来检查中心点是否在三角形内。 3. 如果在内部&#xff0c;则将其位置处的插值深度值 (…

我学编程全靠B站了,真香(第一期)

你好&#xff0c;我是Martin。 我是就读于B站大学2020届的Martin同学&#xff0c;反正我学习计算机真的是全靠 B 站了。 我是个刷视频狂魔&#xff0c;B站收藏夹里也收藏了很多编程类视频&#xff0c; 比如C/C、Go语言、操作系统、数据结构和算法、计算机网络、数据库、Pyth…

Pytorch中张量矩阵乘法函数(mm, bmm, matmul)使用说明,含高维张量实例及运行结果

Pytorch中张量矩阵乘法函数使用说明 1 torch.mm() 函数1.1 torch.mm() 函数定义及参数1.2 torch.bmm() 官方示例 2 torch.bmm() 函数2.1 torch.bmm() 函数定义及参数2.2 torch.bmm() 官方示例 3 torch.matmul() 函数3.1 torch.matmul() 函数定义及参数3.2 torch.matmul() 规则约…

并查集与LRUCache

一)并查集 在一些应用问题中&#xff0c;需要将N个不同的元素划分成一些互不相交的集合&#xff0c;开始的时候&#xff0c;每一个元素自成一个单元素集合&#xff0c;然后按照一定的规律将归于同一组元素的集合进行合并&#xff0c;并且在此过程中需要反复使用到查询某一个元素…

使用grubby更改RHEL7/8/9的默认内核

使用grubby更改RHEL7/8/9的默认内核 验证默认内核版本获取当前默认内核的索引号检查所有内核的详细信息检查已安装的内核 更改默认内核引导条目使用索引号更改默认内核引导条目 验证默认内核版本 参考&#xff1a;https://linux.cn/article-16147-1.html # 验证默认内核版本 …

zookeeper源码(01)集群启动

本文介绍一下zookeeper-3.5.7集群安装。 解压安装 tar zxf apache-zookeeper-3.5.7-bin.tar.gz创建数据、日志目录&#xff1a; mv apache-zookeeper-3.5.7-bin /app/zookeeper-3.5.7 cd /app/zookeeper-3.5.7mkdir data mkdir logs编辑配置文件 zoo.cfg文件 cp conf/zoo_…

炫云云渲染3ds max效果图渲染教程

很多人在第一次使用炫云云渲染渲染效果图的时候不知道怎么使用&#xff0c;其实现在使用炫云渲染效果图真的很简单&#xff0c;我们一起来看看。 一客户端安装 1、打开炫云云渲染官网&#xff0c;点击右上角的客户端下载&#xff0c;选择炫云客户端&#xff08;NEXT版&#xf…

【JavaEE】多线程(三)

多线程&#xff08;三&#xff09; 续上文&#xff0c;多线程&#xff08;二&#xff09;&#xff0c;我们已经讲了 创建线程Thread的一些重要的属性和方法 那么接下来&#xff0c;我们继续来体会了解多线程吧~ 文章目录 多线程&#xff08;三&#xff09;线程启动 startsta…