Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does the golang place the type specifier "after" the variable name?

Tags:

go

Just out of curiosity, why does the golang place the type specifier after the variable name like below. Have to? Or happen to?

type person struct {
    name string
    age  int
}

Why not just like this? It's more natural IMHO, and it saves the type keyword.

struct person {
    string name
    int age
}
like image 246
smwikipedia Avatar asked Mar 11 '23 15:03

smwikipedia


1 Answers

I think the Go programming language follows these principles:

  • declarations start with a keyword, so that the parser can be implemented with a single token look-ahead (like in Pascal)
  • the rest of the declaration follows the English grammar, with every redundant word left out (also like in Pascal, but with fewer keywords)

Examples:

  • The type Frequency is a map indexed by string, mapping to int
    type Frequency map[string]int
  • The type Point is a struct with two fields, x and y of type int
    type Point struct { x, y int }

The above sentences focus more on the names than on the types, which makes sense since the names convey more meaning.

If I had to explain to novice programmers how to write declarations in Go, I would let them first describe it in plain English and then remove every word that might even seem redundant.

Up to now, I didn't find any contradictions to these rules.

like image 92
Roland Illig Avatar answered Apr 07 '23 19:04

Roland Illig