> 백엔드 개발 > Golang > `float32`의 Go 슬라이스를 `float64`로 효율적으로 변환하려면 어떻게 해야 합니까?

`float32`의 Go 슬라이스를 `float64`로 효율적으로 변환하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-11-29 04:34:19
원래의
604명이 탐색했습니다.

How Can I Efficiently Convert a Go Slice of `float32` to `float64`?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿