Take the following code as an example:
package main import ( "fmt" ) const ( First int64 = iota Second ) const ( One int64 = 1 Two = 2 ) func main() { fmt.Printf("First type: %T, Second type: %T\n", First, Second) fmt.Printf("One type: %T, Two type: %T\n", One, Two) } Running the above code produces: First type: int64, Second type: int64 One type: int64, Two type: int Why is Second's type int64 instead of the default type int like Two? I think that it is decided by the following rule from https://golang.org/ref/spec#Constant_declarations. Is my understanding correct? > Within a parenthesized const declaration list the expression list > may be omitted from any but the first declaration. Such an empty > list is equivalent to the textual substitution of the first > preceding non-empty expression list and its type if any. Omitting > the list of expressions is therefore equivalent to repeating the > previous list. The number of identifiers must be equal to the number > of expressions in the previous list. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.