5 ms·
Could someone point out, what is the reasoning of putting types after variable names? i.e. why not `int i` instead of `var i int` ?
by exim 14y ago
Could someone point out, what is the reasoning of putting types after variable names? i.e. why not `int i` instead of `var i int` ?
- drivebyacct2 14y agoThis is mentioned somewhere but it removes the ambiguity and bugs that can be introduced by pointer types. Consider: int* i, j (or rather int *i, j)
- to3m 14y agoWell, there's no ambiguity in this case, because "int" is a keyword, known to the compiler, and will always be interpreted as a type. But if you had something like "x*y,z", then the meaning of this would depend on whether x is a type or not.
- singular 14y agoI think this is more in reference to the common C error of:- int* x, y; when you meant to declare both x and y as int pointers, here only x will be a pointer and y will be a straight int. Obviously the go designers could have chosen to simply make this mean that both x and y are pointers, however this would be somewhat confusing for those familiar with C. As iand says, there is a rather good article on this which goes into a lot more detail - http://golang.org/doc/articles/gos_declaration_syntax.html http://golang.org/doc/articles/gos_declaration_syntax.html
- deleted 14y ago[deleted]
- iand 14y agoSee http://golang.org/doc/articles/gos_declaration_syntax.html http://golang.org/doc/articles/gos_declaration_syntax.html
- qznc 14y agoIt is more readable, if have multiple declarations, since the names are aligned instead of the types. var x int var foo map[string]int var dummy []int compared to var int x var map[string] int foo var []int dummy
- ori_b 14y agoIt's easier to parse. You don't have to do the lexer hack (http://en.wikipedia.org/wiki/The_lexer_hack http://en.wikipedia.org/wiki/The_lexer_hack), for example.