ホームページ >バックエンド開発 >Golang >Go で数値スライスを別の型に効率的に変換するにはどうすればよいですか?

Go で数値スライスを別の型に効率的に変換するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-23 10:42:10386ブラウズ

How to Efficiently Convert a Numeric Slice to a Different Type in Go?

数値スライスを別の型に変換する

Go では、ある数値型のスライスを別の型に変換するのが一般的なタスクです。ただし、迅速で効率的な方法を探している場合は、デフォルトの反復アプローチが最も効果的です。

スライスの要素を調べて各要素を明示的に変換するのが最も簡単なアプローチです。代わりに:

output[i] = float64(data[i])

効率を最適化するには、範囲ループを使用し、境界チェックのためにスライスにインデックスを付けることを避けます。推奨される方法は次のとおりです。

func convertTo64(ar []float32) []float64 {
   newar := make([]float64, len(ar))
   var v float32
   var i int
   for i, v = range ar {
      newar[i] = float64(v)
   }
   return newar
}

Go では変数が再利用されずに繰り返し作成されるため、範囲ループで := を使用すると効率が悪いことに注意してください。従来の for ループの代わりに range を使用すると、境界チェックも節約できます。

以上がGo で数値スライスを別の型に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。