Go에서 효율적으로 숫자 슬라이스 변환
Go에서 숫자 슬라이스로 작업하려면 종종 다른 숫자 유형 간에 변환해야 합니다. 이 질문은 float32 유형의 슬라이스를 float64로 효율적으로 변환하는 문제를 다룹니다.
반복 접근 방식
개별 요소를 반복하고 해당 유형을 명시적으로 변환하는 것이 일반적인 접근 방식입니다. 단순하기는 하지만 큰 조각에는 비효율적일 수 있습니다. 그러나 Go에서는 언어의 저수준 특성으로 인해 일반적으로 이 반복 기술이 가장 효율적입니다.
최적화 요령
반복 접근 방식을 최적화하려면 다음을 사용하는 것이 좋습니다. 인덱싱이 포함된 for 루프 대신 내장된 범위 루프. range는 범위 검사의 오버헤드를 방지하여 더 빠른 변환을 제공합니다.
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 }
사용 예
다음 코드는 최적화된 변환 방법의 사용을 보여줍니다.
slice32 := make([]float32, 1000) slice64 := convertTo64(slice32)
틀림 가정
이 질문에서는 슬라이스 변환을 위한 내장 함수가 있을 수 있음을 시사하지만 그렇지 않습니다. 이러한 작업을 위해 사전 정의된 모든 기능은 궁극적으로 이면의 반복에 의존합니다.
위 내용은 `float32`의 Go 슬라이스를 `float64`로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!