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

时间:2016-11-20 08:27:17

标签: go

出于好奇,为什么golang将类型说明符放在变量名后面,如下所示。不得不?或碰巧?

type person struct {
    name string
    age  int
}

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

struct person {
    string name
    int age
}

1 个答案:

答案 0 :(得分:6)

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

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

示例:

  • Frequency类型是由map编制索引的string,映射到int
    type Frequency map[string]int
  • 类型Point是一个struct,其中包含x类型yint两个字段。 type Point struct { x, y int }

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

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

到目前为止,我没有发现与这些规则有任何矛盾。