2012-12-13 33 views
16

有人可以告訴我,如果去支持自動轉換數值類型。現在我必須手動將所有計算結果轉換爲int或int64,並跟蹤我正在使用的數字類型。golang中的數字類型之間的鑄造

+1

你可能想看看[這個問題,它的答案(http://stackoverflow.com/questions/13367979/idiomatic-type-conversion-in-go/13368417)。 – nemo

回答

13

Go不會自動爲您轉換數字類型。

從語言規範:

換算時不同數值類型在 表達式或分配混合是必需的。例如,int32和int不是 是同一類型,即使它們在特定的體系結構上可能具有相同的大小。

4

Go不支持數值類型中的隱式類型轉換。

參照spec。我認爲這是出於安全性和可預測性的原因。還有一件事我發現有點奇怪/有趣的是,你甚至不能隱式地從int轉換爲int32,這很奇怪,因爲它們的大小都是相同的。

type conversion error

+4

'int'肯定沒有被指定爲'int32'。它因實施和平臺而異。 – Dustin

+0

那麼你如何明確地做到這一點? –

+19

通過說y = int32(x) – gprasant

0

你必須手動類型之間進行轉換,例如