语言go斜杠符号的用法
【摘要】 简介/ 主要表示 除法运算符,但它的语义会随着操作数的类型而变化。可以分几种情况来看:整数除法 a := 13 / 3 // 结果是 4 b := -13 / 3 // 结果是 -4两边都是整数 → 结果仍然是整数(截断小数部分)。Go 的整数除法是 向零截断(不同于某些语言的向下取整)。 13 / 3 == 4 -13 / 3 == -4 (不是 -5!) 2 常见用途:计...
简介
/ 主要表示 除法运算符,但它的语义会随着操作数的类型而变化。
可以分几种情况来看:
-
整数除法
a := 13 / 3 // 结果是 4 b := -13 / 3 // 结果是 -4
两边都是整数 → 结果仍然是整数(截断小数部分)。
Go 的整数除法是 向零截断(不同于某些语言的向下取整)。
13 / 3 == 4
-13 / 3 == -4 (不是 -5!)
2 常见用途:
计算“整除结果”
结合 % 一起用,做区间/周期判断
q := 13 / 3 // 商 = 4
r := 13 % 3 // 余 = 1
-
-
浮点数除法
x := 13.0 / 3.0 // 结果是 4.333333...
-
如果操作数中有浮点数(float32 或 float64),则执行 浮点除法。
结果会是浮点数,不会被截断。
-
- 不同类型之间的除法
Go 不支持隐式类型转换,所以整数和浮点数不能直接相除,必须显式转换:
x := 13 / 3 // int → 4
y := 13.0 / 3 // 编译错误,3 默认是 int
z := 13.0 / float64(3) // 正确 → 4.3333
-
- 复数除法
Go 支持复数类型(complex64、complex128),/ 也可以用于复数:
c1 := complex(4, 2) // 4 + 2i
c2 := complex(1, -1) // 1 - i
res := c1 / c2
fmt.Println(res) // 输出 (1+3i)
运算规则遵循数学中的复数除法。
错误与边界情况
除数为 0:运行时 panic: runtime error: integer divide by zero
不能对非数值类型使用 /(比如字符串、布尔值等)。
- 其他语义
/ 在 Go 中没有额外的特殊用法,它仅作为运算符存在(不像 % 在 fmt.Printf 中有格式化意义)。
如果在字符串中看到 /,那只是普通字符,比如路径 “usr/local/bin”,并没有语义扩展。
3小结:
在 Go 中,/ 的语义主要是 除法运算符,具体分为:
整数除法(向零截断)
浮点数除法
复数除法
注意除数为 0 会报错 。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)