web-dev-qa-db-ja.com

golangの数値型間のキャスト

Goが数値型の自動キャストをサポートしているかどうか誰かに教えてもらえますか?現在、すべての計算の結果を手動でintまたはint64に変換し、使用している数値型を追跡する必要があります。

19
cobie

Goは数値型を自動的に変換しません。

言語仕様から:

式または割り当てに異なる数値型が混在している場合は、変換が必要です。たとえば、int32とintは、特定のアーキテクチャで同じサイズである場合でも、同じ型ではありません。

13
dskinner

Goは、数値型の暗黙的な型変換をサポートしていません。

spec を参照してください。これは安全性と予測可能性の理由によると思います。もう1つ私が見つけたもう1つの奇妙な点は、暗黙的にintからint32に変換することもできないことです。これは、両方が同じサイズであるために奇妙な原因です。

type conversionerror

4
gprasant

タイプ間で手動で変換する必要があります。

var b byte = byte(x % 256);
0
jameshfisher