我正在学习Go语言,我的编程背景是Python。
最近,我发现了一个与Python不同的%(取模)运算符的行为。与模运算和余数的定义相反,负整数对正整数取模的结果是负数。
例如:
阅读了关于取模运算符和一些类似的问题,我理解这些差异是由相关语言的设计目标造成的。
在Go中是否有内置功能来复制Python的模数操作?
替代方案:是否有计算“模数”而不是“余数”的内部方法?
最近,我发现了一个与Python不同的%(取模)运算符的行为。与模运算和余数的定义相反,负整数对正整数取模的结果是负数。
例如:
Python
a, b, n = -5, 5, 3
for i in range(a, b):
print(i%n)
输出:
1
2
0
1
2
0
1
2
0
1
Go
a, b, n := -5, 5, 3
for i:=a; i<b; i++ {
fmt.Println(i%n)
}
输出:
-2
-1
0
-2
-1
0
1
2
0
1
阅读了关于取模运算符和一些类似的问题,我理解这些差异是由相关语言的设计目标造成的。
在Go中是否有内置功能来复制Python的模数操作?
替代方案:是否有计算“模数”而不是“余数”的内部方法?
(i % n) + n) % n
。在此处验证:https://play.golang.org/p/QT5PA9fltU - Liam Kelly