iota는 Golang 언어의 상수 카운터로, 상수 표현식에만 사용할 수 있습니다.
iota는 const 키워드가 나타나면(const 내부의 첫 번째 줄 앞) 0으로 재설정됩니다. const에서 상수 선언의 각 새 줄은 iota를 한 번씩 계산합니다 (iota는 const 문 블록 행 인덱스로 이해될 수 있습니다. ). (추천 학습: go)
iota를 사용하면 정의를 단순화할 수 있으며 열거형을 정의할 때 매우 유용합니다.
상수 정의에서 iota는 1, 0,1,2,3,4,5...의 단계로 0부터 값을 편리하게 반복할 수 있습니다.
이 예에서는 파일에서 10번입니다. size format 2 1칸 캐리를 기준으로 KB는 왼쪽으로 10비트 이동하고, MB는 왼쪽으로 20비트 이동합니다. . . 이 글의
Sprintf("%f",x)는 String 메서드에 정의되어 있으므로 무한 루프 버그를 일으키지 않습니다. %f는 String()
package main import ( "fmt" ) type ByteSize float64 const ( _ = iota KB ByteSize = 1 << (10*iota) MB GB TB PB EB ZB YB ) func (b ByteSize) String() string{ switch { case b >= YB: return fmt.Sprintf("%.2fYB",b/YB) case b >= ZB: return fmt.Sprintf("%.2fZB",b/ZB) case b >= EB: return fmt.Sprintf("%.2fEB",b/EB) case b >= PB: return fmt.Sprintf("%.2fPB",b/PB) case b >= TB: return fmt.Sprintf("%.2fTB",b/TB) case b >= GB: return fmt.Sprintf("%.2fGB",b/GB) case b >= MB: return fmt.Sprintf("%.2fMB",b/MB) case b >= KB: return fmt.Sprintf("%.2fKB",b/KB) } return fmt.Sprintf("%.2fB",b) } func main() { fmt.Println(ByteSize(1e10)) }호출을 시도하지 않기 때문입니다.
위 내용은 golang iota를 시작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!