> 백엔드 개발 > Golang > Go에서 1000의 거듭제곱을 상수로 어떻게 효율적으로 정의할 수 있나요?

Go에서 1000의 거듭제곱을 상수로 어떻게 효율적으로 정의할 수 있나요?

Barbara Streisand
풀어 주다: 2024-12-03 20:35:15
원래의
297명이 탐색했습니다.

How Can We Efficiently Define Powers of 1000 as Constants in Go?

10의 거듭제곱을 컴팩트 상수로 작성

Go 프로그래밍의 맥락에서 iota 상수를 사용하여 2의 거듭제곱을 우아하게 정의할 수 있습니다. 생성기에서 1000의 거듭제곱(KB, MB 등)에 대한 상수 선언 연습은 지수 연산자가 없습니다.

그러나 언어의 다른 기능을 활용하여 이 문제를 해결할 수 있는 창의적인 방법이 있습니다. 한 가지 접근 방식은 지수가 있는 부동 소수점 리터럴을 활용하는 것입니다.

const (
    KB, MB, GB, TB, PB, EB, ZB, YB = 1e3, 1e6, 1e9, 1e12, 1e15, 1e18, 1e21, 1e24
)
로그인 후 복사

이 방법은 모든 상수를 한 줄로 간결하게 표현하므로 길이가 67자(공백 제외)가 됩니다.

또 다른 접근 방식 접근 방식은 정수 리터럴을 사용하고 설정된 KB 상수를 승수로 사용합니다.

const (
    KB, MB, GB, TB, PB, EB, ZB, YB = 1000, KB * KB, MB * KB, GB * KB, TB * GB, PB * KB, EB * KB, ZB * KB
)
로그인 후 복사

이 접근 방식은 결과는 형식화되지 않은 정수 상수이며 길이는 77자(공백 제외)입니다.

또한 곱셈 요소를 나타내는 중간 상수 x를 도입하여 추가로 3자를 절약할 수 있습니다.

const (
    x, KB, MB, GB, TB, PB, EB, ZB, YB = 1000, x, x * x, MB * x, GB * x, TB * GB, PB * x, EB * x, ZB * x
)
로그인 후 복사

이 솔루션은 74자(공백 제외) 길이를 달성합니다.

마지막으로 rune을 활용할 수 있습니다. 다른 문자를 저장하는 1000 상수를 나타내는 리터럴:

const (
    x, KB, MB, GB, TB, PB, EB, ZB, YB = 'Ϩ', x, x * x, MB * x, GB * x, TB * GB, PB * x, EB * x, ZB * x
)
로그인 후 복사

이 접근 방식은 룬 상수를 제공하며 길이는 73자(공백 제외)입니다.

이러한 솔루션은 다양한 창의적 기술을 보여줍니다. Go에서 지수 연산자가 없는 경우 1000의 상수 거듭제곱을 간결하게 정의합니다.

위 내용은 Go에서 1000의 거듭제곱을 상수로 어떻게 효율적으로 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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