如何使用Golang实现基本算术运算_加减乘除和取余操作

Go语言中基本算术运算直接使用+、-、*、/、%五种内置运算符,整数除法向零取整,%仅支持整数且符号同被除数;浮点数不支持%,需用math.Mod;类型必须一致或显式转换。

在 Go 语言中,基本算术运算(加、减、乘、除、取余)直接使用内置运算符即可,无需额外导入包。只要操作数类型兼容(如 intfloat64 等),Go 就能自动计算并返回对应类型的结果。

支持的算术运算符及用法

Go 提供以下五种基础算术运算符:

  • +:加法(支持整数、浮点数、字符串拼接)
  • -:减法(仅支持数值类型)
  • *:乘法(仅支持数值类型)
  • /:除法(整数相除结果向零取整;浮点数相除得浮点结果)
  • %:取余(仅支持整数类型,符号与被除数一致)

整数运算示例(int 类型)

整数运算最常用,注意除法和取余对类型有严格要求:

package main
import "fmt"

func main() { a, b := 17, 5 fmt.Println("a + b =", a + b) // 22 fmt.Println("a - b =", a - b) // 12 fmt.Println("a b =", a b) // 85 fmt.Println("a / b =", a / b) // 3(整数除法,截断小数) fmt.Println("a % b =", a % b) // 2(17 ÷ 5 = 3 余 2)

// 负数取余:结果符号与被除数(a)相同
fmt.Println("-17 % 5 =", -17 % 5) // -2
fmt.Println("17 % -5 =", 17 % -5) // 2(Go 中模运算基于被除数符号)

}

浮点数运算注意事项

使用 float32float64 时,除法返回浮点结果,但不支持取余(%)。需用 math.Mod 替代:

package main
import (
    "fmt"
    "math"
)

func main() { x, y := 17.5, 3.2 fmt.Println("x + y =", x + y) // 20.7 fmt.Println("x / y =", x / y) // 约 5.46875 fmt.Println("math.Mod(x, y) =", math.Mod(x, y)) // 约 1.5(等价于浮点取余) }

⚠️ 注意:% 运算符不能用于浮点数,否则编译报错:invalid operation: % (mismatched types float64 and float64)

类型一致性与显式转换

Go 不允许隐式类型混合运算。例如 intint64 不能直接计算:

var i int = 10
var j int64 = 3
// fmt.Println(i + j) // ❌ 编译错误
fmt.Println(i + int(j)) // ✅ 显式转为 int
fmt.Println(int64(i) + j) // ✅ 显式转为 int64

常见做法是统一使用 int(平台相关,通常 64 位系统为 int64),或根据需求明确指定如 int32uint 等,并在跨类型运算时手动转换。