2017-05-06 48 views
-2

當使用big.Int時,我似乎無法使用< =(大於或等於)運算符。運算符<=未在指針上定義

有沒有辦法比較兩個big.Ints?

我的代碼,例如:

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

'' 和 '開方' 是我要比較的。

感謝所有幫助

+1

使用['Int.Cmp'方法](https://godoc.org/math/big#Int.Cmp)。 –

回答

1

使用的大(https://golang.org/pkg/math/big/#Int.Cmp) CMP返回-1如果低於這個CMP方法。如果相等則爲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) 
    } 
} 

操場:https://play.golang.org/p/FpU8xaRrdE

+0

我該如何實現這個'<='?如在,小於或等於? – MaxCodes

+0

它小於或等於。請記住,只有更大,Cmp纔會返回1。所以當我是10時,Cmp返回0並且它仍然打印,但是當我11時它返回1並停止。仔細觀察操場示例,對其進行修改,直到您理解爲止。 – Qubert