2017-05-04 20 views

回答

6

存在一個細微的差異,使用明確的位清除運算符可以更輕鬆地處理文字和非類型常量。

無類型整數的默認類型爲int,因此像a := uint32(1) & ^1這樣的內容是非法的,因爲^ 1首先被計算並且被評估爲^ int(1),即等於-2。 a := uint32(1) &^ 1是合法的,但因爲這裏1基於上下文被評估爲uint32。

明確表明一點可能會有一些性能上的提升,但我對此不太確定。

+2

至少在amd64上,它們編譯到相同的機器代碼,所以沒有性能差異。 – JimB

+0

JimB,我假定你的意思是,如果你做一切簽署ints? –

相關問題