Go에서 iota는 순차 정수를 열거된 상수에 할당하는 데 사용되는 특수 상수입니다. 끊임없는 그룹. 그러나 특정 상수에 iota 값을 할당하는 것을 건너뛰어야 하는 경우가 있습니다. 다음은 세 가지 접근 방식입니다.
상수가 동일한 그룹 내에 있는 경우 상수를 사용하여 Iota를 수동으로 이동하여 그대로 둘 수 있습니다. 건너뛰려는 상수에 대한 빈 초기화 표현식:
const ( APPLE = iota ORANGE PEAR BANANA = iota + 96 // 96 is added manually to get 99 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
이 접근 방식은 원하는 출력을 생성합니다. 0, 1, 2, 99, 100. 그러나 BANANA 앞에 순서를 바꾸거나 새로운 상수를 삽입하면 BANANA 및 그 이후의 상수 값에 영향을 미칩니다.
예기치 않은 값 변경을 방지하려면 상수 그룹을 끊고 새 그룹을 시작하세요. one:
const ( APPLE = iota ORANGE PEAR ) const ( BANANA = iota + 99 // Iota resets to 0 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
이 역시 동일한 출력을 생성하며 BANANA 앞에 새 상수를 삽입해도 BANANA 및 후속 상수의 값에는 영향을 미치지 않습니다.
값을 건너뛰는 동안 단일 상수 그룹을 유지하려면 중단 위치에 상수를 도입하세요. 다음 줄의 iota에서 해당 값을 빼야 합니다.
const ( APPLE = iota ORANGE PEAR _BREAK BANANA = iota - _BREAK + 98 // Continues from 98 + 1 = 99 GRAPE ) fmt.Println(APPLE, ORANGE, PEAR, BANANA, GRAPE)
이 접근 방식을 사용하면 BANANA 앞에 순서를 변경하거나 새 상수를 삽입해도 BANANA 및 후속 상수의 값에 영향을 미치지 않습니다. 오프셋 계산을 단순화하기 위해 _break를 iota 1로 초기화할 수 있으므로 다음 상수에 적용할 오프셋은 _break 자체의 값입니다.
const ( APPLE = iota ORANGE PEAR _BREAK = iota + 1 BANANA = iota - _BREAK + 99 // Continues from 99 GRAPE )
위 내용은 Go에서 연속 정수를 상수에 할당할 때 Iota 값을 건너뛸 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!