2014-07-19 3 views
3

Go에서 단일 상수를 선언하는 가장 좋은 방법은 무엇입니까?Golang : 단일 상수 선언

1)

const myConst 

2)

const (
     myConst 
) 

두 가지 방법은 gofmt로 사용할 수 있습니다. 두 가지 방법은 stdlib에 있지만 1)을 많이 사용합니다.

답변

6

두 번째 형식은 주로 여러 개의 상수 선언을 그룹화하기위한 것입니다.

하나의 상수 만있는 경우 첫 번째 양식으로 충분합니다.

const maxNanoSecondIntSize = 9 

그러나 archive/zip/struct.go의 : 예를 archive/tar/reader.go에 대한

// Compression methods. 
const (
     Store uint16 = 0 
     Deflate uint16 = 8 
) 

하나 const()에서 그룹 모든 상수가 의미하지 않는다 : 당신이 iota (successive integer)에 의해 초기화 상수가있을 때 , 각 블록 수를 계산합니다.
the comments

// flags for state generation 
const (
    DONE = iota 
    MUSTDO 
    MUSTLOOKAHEAD 
) 

// flags for a rule having an action, and being reduced 
const (
    ACTFLAG = 1 << (iota + 2) 
    REDFLAG 
) 

dalu 추가 예를 cmd/yacc/yacc.go를 참조하십시오 :

그것은 또한 import, type, var으로 수행하고, 두 번 이상 할 수 있습니다.

그것은 사실입니다,하지만 당신은 iotaconstant declaration에 사용 발견 할 것이다, 그것은 당신이 연속 정수 상수의 여러 세트를 필요로하는 경우 여러 const() 블록을 정의하도록 강요한다.

+0

그리고 답변을 확장하기 위해 import, type, var 및 여러 번 사용할 수도 있습니다. –

+0

@ 달룩 좋은 지적. 나는 그것을 더 많은 가시성을 위해 대답에 포함 시켰습니다. 나는 또한 여러 개의'const()'블록을 사용해야하는 예제로 iota 사용법을 추가했다. – VonC

+0

예에서 나는 CAPS와 CamelCase에서 상수 이름을 본다. 상수 이름 지정의 선호되는 방법은 무엇입니까? – warvariuc