Converting a Numeric Slice to a Different Type
In Go, converting a slice of one numeric type to another type is a common task. However, if you're looking for a quick and efficient method, the default iterative approach is the most effective.
Going through the elements of the slice and explicitly converting each element is the most straightforward approach. Instead of:
output[i] = float64(data[i])
For optimal efficiency, use the range loop and avoid indexing the slice for bounds checking. Here's the recommended method:
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 }
Note that using := in the range loop is inefficient in Go, as the variable is repeatedly created instead of being reused. Using range instead of a traditional for loop also saves on bounds checks.
The above is the detailed content of How to Efficiently Convert a Numeric Slice to a Different Type in Go?. For more information, please follow other related articles on the PHP Chinese website!