分享好友 数智知识首页 数智知识分类 切换频道

探索Go语言中的运算符:基本与高级用法

在Go语言中,运算符是执行数学计算的符号。基本运算符用于执行基本的算术操作,如加、减、乘、除等。高级运算符用于执行更复杂的操作,如条件判断、类型转换、格式化输出等。...
2025-05-06 23:40100

在Go语言中,运算符是执行数学计算的符号。基本运算符用于执行基本的算术操作,如加、减、乘、除等。高级运算符用于执行更复杂的操作,如条件判断、类型转换、格式化输出等。

一、基本运算符

1. 算术运算符

  • `+`:加法运算符,将两个操作数相加。
  • `-`:减法运算符,从左侧操作数中减去右侧操作数。
  • `*`:乘法运算符,将两个操作数相乘。
  • `/`:除法运算符,将左侧操作数除以右侧操作数。

2. 关系运算符

  • `==`:等于运算符,比较两个操作数是否相等。
  • `!=`:不等于运算符,比较两个操作数是否不相等。
  • `<`:小于运算符,比较左侧操作数是否小于右侧操作数。
  • `<=`:小于或等于运算符,比较左侧操作数是否小于或等于右侧操作数。
  • `>`:大于运算符,比较左侧操作数是否大于右侧操作数。
  • `>=`:大于或等于运算符,比较左侧操作数是否大于或等于右侧操作数。

3. 逻辑运算符

  • `&&`:逻辑与运算符,当所有操作数都为真时,结果为真。
  • `||`:逻辑或运算符,当至少一个操作数为真时,结果为真。
  • `!`:逻辑非运算符,取反操作数的逻辑值。

4. 位运算符

  • `&`:按位与运算符,比较两个操作数的二进制表示中的对应位。
  • `|`:按位或运算符,比较两个操作数的二进制表示中的对应位。
  • `^`:按位异或运算符,比较两个操作数的二进制表示中的对应位。
  • `~`:按位取反运算符,将操作数的二进制表示中的对应位取反。

二、高级运算符

1. 条件运算符

  • `if else`:根据条件表达式的结果,执行相应的代码块。
  • `switch`:根据给定的条件表达式,执行相应的代码块。

2. 类型转换运算符

  • `(float64)`:将左侧操作数转换为浮点数类型。
  • `(string)`:将左侧操作数转换为字符串类型。
  • `(int)`:将左侧操作数转换为整数类型。
  • `(bool)`:将左侧操作数转换为布尔值。

3. 格式化输出运算符

  • `fmt.Println()`:使用标准输出函数打印信息。
  • `fmt.Sprintf()`:使用标准输出函数格式化输出。
  • `fmt.Printf()`:使用标准输出函数格式化输出。
  • `fmt.Fprintf()`:使用标准输出函数格式化输出。

4. 并发控制运算符

  • `go func() { ... }()`:定义并执行并发函数。
  • `go func() { ... defer func() { ... }`:定义并执行匿名函数,并在程序结束时自动调用该函数。
  • `go func() { ... defer go func() { ... }`:定义并执行匿名函数,并在程序结束时自动调用该函数。

探索Go语言中的运算符:基本与高级用法

5. 错误处理运算符

  • `error`:声明一个错误变量。
  • `panic`:引发一个运行时错误。
  • `defer`:延迟执行一个函数。
  • `return`:返回一个值。
  • `throw`:抛出一个异常。

6. 切片和映射运算符

  • `append()`:向切片末尾添加元素。
  • `len()`:获取切片的长度。
  • `copy()`:复制切片的一个副本。
  • `index()`:获取切片中指定索引的元素。
  • `cap()`:获取切片的最大容量。
  • `range()`:遍历切片中的每个元素。
  • `for range (value := range slice) { ... }`:使用范围循环遍历切片中的每个元素。
  • `select { ... }`:使用选择结构根据条件执行不同的代码块。

7. 指针运算符

  • `*`:解引用指针,获取指向的值。
  • `(&type)`:获取指针所指向的类型。
  • `(*type)()`:获取指针所指向类型的函数指针。
  • `(*type)(value)`:将值转换为指针所指向类型的值。
  • `unsafe.Pointer()`:创建一个不安全的指针。

8. 函数参数运算符

  • `func(arg1, arg2, ...) returnType { ... }()`:定义一个接收多个参数并返回相同类型的函数。
  • `func(arg1, arg2, ...) returnType { ... }(value1, value2, ...)`:定义一个接收多个参数并返回相同类型的函数,将传入的值作为参数传递给函数。

9. 闭包运算符

  • `func() { return value; }()`:定义一个闭包,包含一个值。
  • `func() { return nil; }()`:定义一个空闭包。
  • `func() { return value; }()`:定义一个包含特定值的闭包。

10. 反射运算符

  • `reflect.ValueOf(obj)`:获取对象的类型信息。
  • `reflect.TypeOf(obj)`:获取对象的类型名称。
  • `reflect.TypeOf(t)`:获取泛型类型 t 的类型名称。
  • `reflect.ValueOf(t)`:获取泛型类型 t 的实例。
  • `reflect.TypeOf(t)`:获取泛型类型 t 的接口。
  • `reflect.InterfaceOf(i)`:获取泛型类型 i 的所有实现。
  • `reflect.ValueOf(t)`:获取泛型类型 t 的所有字段。
  • `reflect.TypeOf(t)`:获取泛型类型 t 的所有方法。
  • `reflect.MethodOf(t, methodName)`:获取泛型类型 t 中名为 methodName 的方法。
  • `reflect.StructOf(t)`:获取泛型类型 t 的 struct 类型。
  • `reflect.StructOf(t, fieldName)`:获取泛型类型 t 中名为 fieldName 的字段。
  • `reflect.StructOf(t, methodName)`:获取泛型类型 t 中名为 methodName 的方法。
  • `reflect.StructOf(t, fieldName, fieldValue)`:获取泛型类型 t 中名为 fieldName 的字段,其值为 fieldValue。
  • `reflect.StructOf(t, methodName, methodValue)`:获取泛型类型 t 中名为 methodName 的方法,其值为 methodValue。
  • `reflect.StructOf(t, fieldName, fieldValue, fieldType)`:获取泛型类型 t 中名为 fieldName 的字段,其值为 fieldValue,其类型为 fieldType。
  • `reflect.StructOf(t, methodName, methodValue, methodType)`:获取泛型类型 t 中名为 methodName 的方法,其值为 methodValue,其类型为 methodType。
  • `reflect.StructOf(t, fieldName, fieldValue, fieldType)`:获取泛型类型 t 中名为 fieldName 的字段,其值为 fieldValue,其类型为 fieldType。
  • `reflect.StructOf(t, methodName, methodValue, methodType)`:获取泛型类型 t 中名为 methodName 的方法,其值为 methodValue,其类型为 methodType。
举报
收藏 0
推荐产品更多
蓝凌MK

智能、协同、安全、高效蓝凌MK数智化工作平台全面支撑组织数智化可持续发展Gartner预测,组装式企业在实施新功能方面能力超80%竞争对手。未来,企业亟需基于“封装业务能力”(Packaged Business Capability,简称PBC)理念,将传统OA及业务系统全面升级为组...

4.5 80

帆软FineBI

数据分析,一气呵成数据准备可连接多种数据源,一键接入数据库表或导入Excel数据编辑可视化编辑数据,过滤合并计算,完全不需要SQL数据可视化内置50+图表和联动钻取特效,可视化呈现数据故事分享协作可多人协同编辑仪表板,复用他人报表,一键分享发布比传统...

4.5 46

简道云

丰富模板,安装即用200+应用模板,既提供标准化管理方案,也支持零代码个性化修改低成本、快速地搭建企业级管理应用通过功能组合,灵活实现数据在不同场景下的:采集-流转-处理-分析应用表单个性化通过对字段拖拉拽或导入Excel表,快速生成一张表单,灵活进行...

4.5 42

纷享销客CRM

大多数企业低估了数字化对于增长的贡献数字化工具是增长的高速公路,是增长引擎持续奔跑的基础平台传统山型增长曲线企业用更多资源换得增长,ROI会逐渐下降传统增长模式增长公式=资源投入*转化效率数字化时代新增长曲线数字化升级逐渐突破瓶颈,带来企业持续...

4.5 52

推荐知识更多