go - 为什么 golang 将类型说明符 "after"放在变量名中?

标签 go

出于好奇,为什么 golang 将类型说明符放在变量名之后,如下所示。必须?还是碰巧?

type person struct {
    name string
    age  int
}

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

struct person {
    string name
    int age
}

最佳答案

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

  • 声明以关键字开头,因此解析器可以通过单个标记先行实现(就像在 Pascal 中一样)
  • 声明的其余部分遵循英语语法,省略了所有多余的单词(也像 Pascal 中一样,但关键字较少)

例子:

  • Frequency 类型是由string 索引的map,映射到int
    类型频率图[string]int
  • Point 类型是一个 struct,它有两个 xy 类型的 int
    type Point struct { x, y int }

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

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

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

关于go - 为什么 golang 将类型说明符 "after"放在变量名中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40702062/

相关文章:

go - 为什么我的代码会死锁以及如何修复它

go - 如何从特定路径打开goland?

Go:在 Hello World 中导入错误

go - rpc.ServerCodec 还在服务吗?

go - 无法在 kubernetes client-go 中创建没有复制 Controller 的部署

go - 如何在 golang grpc 服务器启动上添加钩子(Hook)?

testing - 处理模糊错误时如何保持良好的 Go 包测试覆盖率?

go - 为什么 atomic.StoreUint32 优于 sync.Once 中的正常分配?

xml - 戈朗 : Unmarshal Self Closing Tags

go - golang 中的词法范围?