go中,為什麼同樣的數字,表現出不同的行為?

時間 2021-07-05 08:18:55

1樓:耶加時間

numb型別預設int

numb>>8型別仍然是int

byte是uint8的alias,是一種integer型別

type

byte

=uint8

integer型別之間可以隨意轉換,放不下的話會truncate

這個可以工作,型別從int轉uint8,扔掉了多出來的部分

那麼為什麼byte(29999999>>8)不工作呢?

29999999是乙個constant expressions,是untyped的

29999999>>8仍然是constant expressions

Constants may be typed or untyped. Literal constants,true,false,iota, and certain constant expressions containing only untyped constant operands are untyped.

重點在這裡:

The values of typed constantsmust always be accurately representableby values of the constant type. The following constant expressions are illegal:

uint(-

1)// -1 cannot be represented as a uint

int(

3.14

)// 3.14 cannot be represented as an int

int64

(Huge

)// 1267650600228229401496703205376 cannot be represented as an int64

Four

*300

// operand 300 cannot be represented as an int8 (type of Four)

Four

*100

// product 400 cannot be represented as an int8 (type of Four)

29999999>>8=117187,byte放不下,所以報錯:

constant 117187 overflows byte

總之需要看spec,我也是搜了spec才回答了這個問題,也是似懂非懂。

為什麼真理總是以廢話的形式表現出來?

文刂 氵替 首先,我和樓上的朋友破題思路不太一樣。我認為題主對於 廢話 的定義中是否包含了 對的話 的潛台詞尚不能明確,僅僅就詞本身而言,我認為題主的意思是 描述真理的語言都是些 沒用的 所以才說真理是廢話。其次,我們來看下這種判斷是否合理。答案是 合理。就拿 實事求是 這句話來說,我們不可能讓它實...

為什麼面對不同的人,自己會表現出不同的性格?

幽默可愛的是我。溫柔謙遜的是我。得體正經的是我。輕挑不正經的是我。開朗活潑的是我。冷漠內向的是我。沒有存在感的是我。有個性的是我。總覺得沒有自我,搞不清哪個是我。 愛自己是終生浪漫 我也是,總是受別人影響,面對活動幽默的人,我很活潑,面對安靜的人,我又很文靜,有時候又很高冷,到底哪乙個是自己,總是受...

為什麼我們滿口孔孟,憧憬老莊,最後表現出來的卻是楊朱的思想?

賀瑄 孔孟是依託於君主臣民的兩極化身份而發揚光大的,老莊受到楊朱的啟發,但是只能先落實到小我的思想自由,楊朱思想才是民主的環境裡人們會推崇的理想社會設想,和現代的去中心化乙個道理,利用天之道的 損有餘而補不足 而不是人 錢 之道的 損不足而奉有餘 以天道治人道,避免人道的自毀,從而生生不息。天氣之子...