Go で int32 を String に変換する
さまざまなプログラミング シナリオで int32 を string に変換すると便利です。 Go では、この変換を実現する方法が複数あります。
簡単な解決策は、int32 値のデフォルト形式を利用する fmt.Sprint(i) を使用することです。ただし、この方法には内部変換が含まれるため、他のオプションと比べて速度が遅くなります。
カスタム変換関数
最適なパフォーマンスを得るには、カスタム変換関数を作成することを検討してください。
func String(n int32) string { buf := [11]byte{} pos := len(buf) i := int64(n) signed := i < 0 if signed { i = -i } for { pos-- buf[pos], i = '0'+byte(i%10), i/10 if i == 0 { if signed { pos-- buf[pos] = '-' } return string(buf[pos:]) } } }
この関数は、int32 値の文字列表現を反復的に構築するため、パフォーマンスが向上します。
strconv.Itoa を使用する
別のオプションは次のとおりです。 fmt.Sprint(i) に比べて高速なアプローチを提供する strconv.Itoa(int(i)) を利用します:
s := strconv.Itoa(int(i))
ただし、このメソッドでは int32 から int への中間変換が必要です。
strconv.FormatInt の使用
strconv.Itoa と同様に、strconv.FormatInt(int64(i), 10) は、int32 から文字列への変換のパフォーマンスの高いソリューションを提供します。 int32 から int64 への中間変換が必要ですが、fmt.Sprint(i) よりもパフォーマンスが向上しています。
s := strconv.FormatInt(int64(i), 10)
ベンチマーク比較
これらの変換でのベンチマークの実行
String: 5.5923198s String2: 5.5923199s strconv.Itoa: 5.9763418s strconv.FormatInt: 5.9133382s fmt.Sprint: 13.5697761s
結果から明らかなように、カスタム変換関数 (String) と String2 が最も速い変換時間を実現します。
最終的には、変換方法の選択によって決まります。アプリケーションの特定のパフォーマンス要件と複雑さの考慮事項について説明します。速度が重要なシナリオでは、カスタム変換関数が最適なソリューションを提供します。
以上がGo で int32 を string に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。