为什么golang将类型说明符放在变量名后面?

smw*_*dia 3 go

出于好奇,为什么golang在变量名之后放置类型说明符,如下所示.不得不?还是碰巧?

type person struct {
    name string
    age  int
}
Run Code Online (Sandbox Code Playgroud)

为什么不这样呢?这是更自然的恕我直言,它保存了type关键字.

struct person {
    string name
    int age
}
Run Code Online (Sandbox Code Playgroud)

Rol*_*lig 6

认为 Go编程语言遵循以下原则:

  • 声明以关键字开头,因此解析器可以使用单个标记前瞻(如在Pascal中)
  • 声明的其余部分遵循英语语法,省略了每个冗余的单词(也像Pascal一样,但关键字较少)

例子:

  • 该类型Frequencymap索引string,映射到int
    type Frequency map[string]int
  • 类型Pointstruct两个字段xy类型int
    type Point struct { x, y int }

上面的句子更多地关注名称而不是关于类型,这是有道理的,因为名称传达了更多的意义.

如果我不得不向新手程序员解释如何在Go中编写声明,我会让他们先用简单的英语来描述它,然后删除每个甚至看起来多余的单词.

到目前为止,我没有发现任何与这些规则相矛盾的问题.