>백엔드 개발 >Golang >Go에서 10의 거듭제곱을 상수로 어떻게 간결하게 정의할 수 있나요?

Go에서 10의 거듭제곱을 상수로 어떻게 간결하게 정의할 수 있나요?

DDD
DDD원래의
2024-11-25 02:57:14466검색

How Can I Compactly Define Powers of 10 as Constants in Go?

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

Go 프로그래밍 언어에서는 10의 거듭제곱을 상수로 정의하는 것이 일반적인 작업입니다. 3장에서 소개된 iota 메커니즘은 상수 값을 증가시키는 편리한 방법을 제공합니다. 그러나 지수화를 처리할 수 없기 때문에 한계가 있습니다. 이 기사에서는 Go에서 지수 연산자 없이 10의 거듭제곱을 상수로 선언하는 다양한 압축 방법을 살펴봅니다.

부동 소수점 리터럴 활용

간결한 방법은 부동 소수점을 사용하는 것입니다. -지수 부분이 있는 포인트 리터럴. 1e3을 쓰는 것이 1000을 쓰는 것보다 더 효율적입니다. 다음은 예입니다(공백 없이 67자):

const ( KB, MB, GB, TB, PB, EB, ZB, YB = 1e3, 1e6, 1e9, 1e12, 1e15, 1e18, 1e21, 1e24 )

KB를 승수로 사용하여 정수 리터럴 사용

유형이 지정되지 않은 정수의 경우 상수의 경우 KB에 1000을 사용하고 다음 상수에 KB를 곱할 수 있습니다. 아래 표시됨(공백 없이 77자):

const (KB,MB,GB,TB,PB,EB,ZB,YB = 1000,KB*KB,MB*KB,GB*KB,TB*GB,PB*KB,EB*KB,ZB*KB)

추가 상수 x를 승수로 사용

1문자를 도입하여 마지막 방법을 더욱 최적화할 수 있습니다. 여기에 표시된 것처럼 const x를 승수로 사용합니다(포함되지 않은 74자). 공백):

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)

룬 리터럴 활용

마지막으로 룬 리터럴을 상수로 사용할 수 있습니다. 코드 포인트 1000은 'x'보다 한 문자 작은 룬 'Ϩ'에 해당합니다. 다음은 예입니다(공백 없이 73자):

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)

이 방법은 Go에서 10의 거듭제곱을 상수로 정의하는 간결하고 효율적인 방법을 제공하여 간결하고 읽기 쉬운 코드를 가능하게 합니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.