2016-07-06 8 views
0

実行時にこのエラーメッセージが表示されるのはなぜですか。それは最も単純な1ライナーでも起動します: strconv.FormatUint(uint64(123), 64)なぜ私は移動エラーを取得しますか?パニック:strconv:不正なAppendInt/FormatIntベース

私はここで何か非常に間違って理解していますか?コードはうまくコンパイルされます。

EDIT:ソリューションを見つけました(後でTim Cooperによって指摘されています)。私はthe examples in the documentationが混乱していると思う:あなたが唯一の例でベース64と16を使用する場合

s := strconv.FormatBool(true) 
s := strconv.FormatFloat(3.1415, 'E', -1, 64) 
s := strconv.FormatInt(-42, 16) 
s := strconv.FormatUint(42, 16) 

が、間違った結論を作ることは非常に簡単です。しかし、今何が間違っているのか分かりましたので、エラーメッセージがはるかに理にかなっています。

+2

ため、所与のベース中のIの文字列表現を返しますあなたの編集に関して:いいえ、どこにドキュメントの64ベースで使用されています。ビットサイズとしてのみ使用されます。 –

+1

binary-safe以外の環境でバイナリデータを表現する方法のように、base64が必要な場合は、 'encoding/base64'がそれを示します。 – twotwotwo

+0

上記の例のfloatもビットサイズですか?私はそれをより明確にするために質問を編集しました。ドキュメントのどの部分を参照していましたか。混乱させて申し訳ありません。 –

答えて

3

the documentationで指定されたように、ベース64は、サポートされていない。

func FormatUint(i uint64, base int) string 

FormatUint 2 < =ベース< = 36

関連する問題