Go 语言中的内置运算符

1. 算术运算符

注意: ++(自增)和--(自减)在 Go 语言中是单独的语句,并不是运算符。

package mainimport "fmt"func main() {fmt.Println("10+3=", 10+3)      // 13fmt.Println("10-3=", 10-3)      // 7fmt.Println("10*3=", 10*3)      // 30// 除法注意:如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分fmt.Println("10/3=", 10/3)      // 3fmt.Println("10.0/3=", 10.0/3)  // 3.3333333333333335// 取余注意 余数=被除数-(被除数/除数)*除数fmt.Println("10%3=", 10%3)      // 1fmt.Println("-10%3=", -10%3)    // -1fmt.Println("10%-3=", 10%-3)    // 1fmt.Println("-10%-3=", -10%-3)  // -1}

注意:在 golang 中,++ -- 只能独立使用,错误写法如下:

var i int = 8
var a int
a = i++  //错误,i++只能独立使用
a = i--  //错误, i--只能独立使用

注意:golang 中没有前++ 和前--,错误写法如下:

var i int = 1
++i // 错误,在 golang 没有 前++
--i // 错误,在 golang 没有 前--
fmt.Println("i=", i)

2. 关系运算符

示例代码如下:

package main
import "fmt"func main() {var a1 = 9var a2 = 8fmt.Println(a1 == a2) // falsefmt.Println(a1 != a2) // truefmt.Println(a1 >  a2) // truefmt.Println(a1 >= a2) // truefmt.Println(a1 <  a2) // flasefmt.Println(a1 <= a2) // flaseflag := a1 > a2fmt.Println("flag=", flag) // flag=truevar a3 = 9var a4 = 14flag := a3 > a4if flag {fmt.Println("a3>a4")  // a3>a4}var a5 = 9var a6 = 8if a5 == a6 {fmt.Println("a4=a6") } else {fmt.Println("a5!=a6") // a5!=a6}}

3. 逻辑运算符


package main
import ("fmt")
func main() {var age int = 40// 演示逻辑运算符的使用 &&if age > 30 && age < 50 {fmt.Println("ok1") // ok1}if age > 30 && age < 40 {fmt.Println("ok2")}// 演示逻辑运算符的使用 ||if age > 30 || age < 50 {fmt.Println("ok3") // ok3}if age > 30 || age < 40 {fmt.Println("ok4") // ok4}// 演示逻辑运算符的使用 !if age > 30 {fmt.Println("ok5") // ok5}if !(age > 30) {fmt.Println("ok6")}
}

逻辑运算符短路演示:

package main
import ( "fmt")
func test() bool {fmt.Println("test...")return true
}
func main() {var i int = 10if i < 9 && test() {fmt.Println("ok...")}if i > 9 || test() {fmt.Println("hello...")}
}

4. 赋值运算符


package main
import "fmt"
func main() {var a = 10a += 3 fmt.Println(a) // 13var b = 10b -= 3 fmt.Println(b) // 7var c = 10c *= 3 fmt.Println(c) // 30var d = 10d /= 3        fmt.Println(d) // 3var e float64 = 10e /= 3        fmt.Println(e) // 3.3333333333333335var f = 10f %= 3        fmt.Println(f) // 1}

5. 位运算符

位运算符对整数在内存中的二进制位进行操作。

package mainimport "fmt"func main() {var a int = 5 // 101var b int = 2 // 010fmt.Println("a&b=", a&b)   // 000 (值 0)fmt.Println("a|b=", a|b)   // 111 (值 7)fmt.Println("a^b=", a^b)   // 111 (值 7)fmt.Println("5>>2=", a>>b) // 1  (5右移2位)fmt.Println("5>>1=", 5>>1) // 10 (5右移1位)fmt.Println("7>>2=", 7>>2) // 1  (7右移1位)fmt.Println("5<<2=", a<<b) // 10100 (5左移2位)fmt.Println("5<<1=", 5<<1) // 1010  (5左移1位)}

6. 运算符练习

1. 练习:有两个变量a和b,要求将其进行交换,最终打印结果。

package main
import "fmt"
func main() {var a = 34var b = 10t := a // t=34a = b  // a=10b = t  // b=34fmt.Printf("a=%v b=%v", a, b)}

2. 练习:有两个变量a和b,要求将其进行交换,不能使用中间变量,最终打印结果。

package main
import "fmt"
func main() {var a = 34var b = 10a = a + b // a=34+10 =>44b = a - b // b=34+10-10=>34a = a - b // a=(34+10)-(34+10-10)=>10fmt.Printf("a=%v b=%v", a, b)}

3. 练习:假如还有100天放假,问:多少个星期零多少天。

package main
import "fmt"
func main() {var days = 100var week = days / 7var day = days % 7fmt.Printf("距离放假还有%v周零%v天", week, day)}

4. 练习:定义一个变量保存华氏温度,请求出华氏温度对应的摄氏温度。

华氏温度转换摄氏温度的公式为:C=(F-32)÷1.8,摄氏温标(°C)和华氏温标(°F)

package main
import "fmt"
func main() {var F float32 = 100 // 华氏温度C := (F - 32) / 1.8fmt.Printf("华氏温度对应的摄氏温度是%.2f", C)
}

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

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

相关文章

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap&#xff0c;但是由于很多朋友看不了解命令行格式&#xff0c;所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习&#xff0c;链接&#xff1a;https://wwhc.lanzoue.com/ifJY32ybh6vc…

发立得信息发布系统房屋信息版(php+mysql)V1.0版

# 发立得信息发布系统房屋信息版(phpmysql) 一个轻量级的房屋信息发布平台&#xff0c;基于PHP和MySQL开发&#xff0c;支持用户发布房屋出售/出租信息&#xff0c;以及后台管理功能。 轻量级适合网站开发PHP方向入门者学习&#xff0c;首发版本&#xff0c;未经实际业务流程检…

学习 React【Plan - June - Week 1】

一、使用 JSX 书写标签语言 JSX 是一种 JavaScript 的语法扩展&#xff0c;React 使用它来描述用户界面。 什么是 JSX&#xff1f; JSX 是 JavaScript 的一种语法扩展。看起来像 HTML&#xff0c;但它实际上是在 JavaScript 代码中写 XML/HTML。浏览器并不能直接运行 JSX&…

小智AI+MCP

什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析&#xff1a;AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github&#xff1a;https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…

基于python大数据的口红商品分析与推荐系统

博主介绍&#xff1a;高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实实在…

ArcPy扩展模块的使用(3)

管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如&#xff0c;可以更新、修复或替换图层数据源&#xff0c;修改图层的符号系统&#xff0c;甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…

打开GitHub网站因为网络原因导致加载失败问题解决方案

Date: 2025.06.09 20:34:22 author: lijianzhan 在Windows系统中&#xff0c;打开GitHub网站因为网络原因导致加载失败问题解决方案 打开Windows系统下方搜索框&#xff0c;搜索Microsoft Store&#xff0c;并且双击打开 在应用里面搜索Watt Toolkit&#xff0c;并下载安装 …

AI代码助手需求说明书架构

AI代码助手需求说明书架构 #mermaid-svg-6dtAzH7HjD5rehlu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6dtAzH7HjD5rehlu .error-icon{fill:#552222;}#mermaid-svg-6dtAzH7HjD5rehlu .error-text{fill:#552222;s…

.NET开发主流框架全方位对比分析

文章目录 1. ASP.NET Core核心特性代码示例&#xff1a;基本控制器优势劣势 2. .NET MAUI核心特性代码示例&#xff1a;基本页面优势劣势 3. Blazor两种托管模型核心特性代码示例&#xff1a;计数器组件优势劣势 4. WPF (Windows Presentation Foundation)核心特性代码示例&…

【系统架构设计师-2025上半年真题】案例分析-参考答案及部分详解(回忆版)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 试题一(25分)【问题1】(12分)【问题2】(13分)试题二(25分)【问题1】(10分)【问题2】(6分)【问题3】(9分)试题三(25分)【问题1】(13分)【问题2】(8分)【问题3】(4分)试题四(25分)【问题1】(6分)【问题2】(12…

【中间件】Web服务、消息队列、缓存与微服务治理:Nginx、Kafka、Redis、Nacos 详解

Nginx 是什么&#xff1a;高性能的HTTP和反向代理Web服务器。怎么用&#xff1a;通过配置文件定义代理规则、负载均衡、静态资源服务等。为什么用&#xff1a;提升Web服务性能、高并发处理、负载均衡和反向代理。优缺点&#xff1a;轻量高效&#xff0c;但动态处理能力较弱&am…

运动控制--小车的启动和停止算法

一、现实问题 小车在启动时由于受到惯性&#xff0c;后轮和前轮速度不一致&#xff0c;会引起车身不稳。 如小车上面装的是水&#xff0c;会出现倾洒&#xff0c;体验差。 二、数学研究 启动时 停止时 急动度&#xff08;jerk) 三、BLDC控制与S型曲线的融合逻…

WebFuture:Ubuntu 系统上在线安装.NET Core 8 的步骤

方法一&#xff1a;使用官方二进制包安装 下载.NET Core 8 SDK 二进制包&#xff1a;访问 .NET Core 8 SDK 官方下载页面&#xff0c;根据你的系统架构选择对应的 Linux x64 版本等下载链接&#xff0c;将其下载到本地4. 创建安装目录&#xff1a;在终端中执行以下命令创建用于…

可视化预警系统:如何实现生产风险的实时监控?

在生产环境中&#xff0c;风险无处不在&#xff0c;而传统的监控方式往往只能事后补救&#xff0c;难以做到提前预警。但如今&#xff0c;可视化预警系统正在改变这一切&#xff01;它能够实时收集和分析生产数据&#xff0c;通过直观的图表和警报&#xff0c;让管理者第一时间…

深度解析 Linux 内核参数 net.ipv4.tcp_rmem:优化网络性能的关键

文章目录 引言一、认识 net.ipv4.tcp_rmem1. 最小值&#xff08;min&#xff09;2. 默认值&#xff08;default&#xff09;3. 最大值&#xff08;max&#xff09; 二、net.ipv4.tcp_rmem 的工作原理三、net.ipv4.tcp_rmem 的实际应用场景1. 高并发 Web 服务器2. 文件传输服务3…

Windmill:开源开发者基础设施的革命者

前言 在企业内部,开发者经常需要构建各种内部工具来支持业务运营、数据分析和系统管理。这些工具通常需要前端界面、后端逻辑和工作流编排,开发过程繁琐且耗时。今天要介绍的Windmill项目,正是为解决这一痛点而生,它让构建内部工具变得简单高效,堪称开发者的得力助手。 …

国产化Excel处理组件Spire.XLS教程:用 Java 获取所有 Excel 工作表名称(图文详解)

在 Excel 中&#xff0c;工作表名称通常能够反映其用途或所含内容&#xff0c;提取这些名称有助于理清整个工作簿的结构。对于新用户或协作者来说&#xff0c;仅凭这些名称就能快速掌握各表中的数据类型。本文将演示如何使用 Java 获取 Excel 文件中的所有工作表名称&#xff0…

day49python打卡

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 最近临近毕业&#xff0c;事情有点多。如果有之前的基础的话&#xff0c;今天的难度相对较低。 后面说完几种模块提取特征的组合方式后&#xff0c;会提供整理的开源模块的文件。 现在大家已近可以去读这类…

day27-shell编程(自动化)

1. 准备工具 添加到/etc/vimrc autocmd BufNewFile *.py,*.cc,*.sh,*.java,*.bash,Dockerfile,docker-compose.yml exec ":call SetTitle()"func SetTitle() if expand("%:e") ~ sh\|bash call setline(1,"#!/bin/bash")call setline(2, &quo…

【免杀】C2免杀技术(十五)shellcode混淆uuid/ipv6/mac

针对 shellcode 混淆(Shellcode Obfuscation) 的实战手段还有很多,如下表所示: 类型举例目的编码 / 加密XOR、AES、RC4、Base64、Poly1305、UUID、IP/MAC改变字节特征,避开静态签名或 YARA结构伪装PE Stub、GIF/PNG 嵌入、RTF OLE、UUID、IP/MAC看起来像合法文件/数据,弱…