指针上未定义运算符<=。

huangapple go评论88阅读模式
英文:

operator <= not defined on pointer

问题

我似乎无法在使用big.Int时使用<=(大于等于)运算符。

有没有一种比较两个big.Int的方法?

我的代码如下:

for i := big.NewInt(2); i <= sqrt; i.Add(i, big.NewInt(1)) {...}

'i'和'sqrt'是我想要比较的内容。

谢谢任何帮助。

英文:

I can't seem to use the <= (greater than or equal to) operator when using big.Int.

Is there a way of comparing two big.Ints?

My code is as such:

for i := big.NewInt(2); i &lt;= sqrt; i.Add(i, big.NewInt(1)) {...

'i' and 'sqrt' are what I want to compare.

Thanks for any help

答案1

得分: 2

使用big包的Cmp方法(https://golang.org/pkg/math/big/#Int.Cmp)。
Cmp方法返回-1表示小于,返回0表示相等,返回1表示大于。

package main

import (
	"fmt"
	"math/big"
)

func main() {
	for i := big.NewInt(2); i.Cmp(big.NewInt(10)) < 1; i.Add(i, big.NewInt(1)) {
		fmt.Println(i)
	}
}

playground链接:https://play.golang.org/p/FpU8xaRrdE

英文:

Use the Cmp method of big (https://golang.org/pkg/math/big/#Int.Cmp)
Cmp returns -1 if less than. 0 if equal or 1 if greater.

package main

import (
	&quot;fmt&quot;
	&quot;math/big&quot;
)

func main() {
	for i := big.NewInt(2); i.Cmp(big.NewInt(10)) &lt; 1; i.Add(i, big.NewInt(1)) {
		fmt.Println(i)
	}
}

playground: https://play.golang.org/p/FpU8xaRrdE

huangapple
  • 本文由 发表于 2017年5月6日 23:57:08
  • 转载请务必保留本文链接:https://go.coder-hub.com/43822478.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定