【05】Go 编程的约定

murphyzhao · 2019-09-20 21:57:19 · 58515 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-09-20 21:57:19 的主题,其中的信息可能已经有所发展或是发生改变。

Go 编程的约定

C 语言的时候,无论你按照怎么样的代码风格书写,都是可以正常编译的,但在 Go 编程中就需要注意一些约定。

1 代码风格及代码格式化

GO 不要求你在写代码的刻意美化对齐代码,或者定义一个 80 线(每行不超过 80 个字符),因为 GO 有 gofmt 工具。所有的 GO 代码都经过 gofmt 格式化为统一的风格。

其他的一些约定:

  • 使用 tab 制表符进行缩进(有点难以理解,因为不同的编辑器 tab 的长度不一定一样)
  • { 不能单独放一行
  • 更少的括号使用(使用空格来断定操作符优先级 [想哭])

    示例:

      x<<8 + y<<16
    
  • 使用 ///* ... */ 进行注释

    除了行注释、块注释外,还有 包注释。包注释是放在一个包中任意一个 go 文件的 go 语句前的一个注释块。包注释是为了使用 godoc 工具导出包使用说明文档。

  • 其它

2 标识符

当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。

  • 首字母大写的标识符可以被外部包的代码导入后使用(类似于 C 的全局函数一样);
  • 首字母小写的标识符只能在整个包的内部使用(类似于 C 的静态函数)

标识符包括常量、变量、类型、函数名、结构字段等等。。。

3 命名规范

  • 包命名规范
  • 接口命名规范
  • 驼峰命名法

其它

GO 规范内容挺多的,详细参考Effective Go(GO 实效编程)


GO 编程的规范内容比较多,快速浏览了下,也没有看完,还需要通过后续的编程来消化吸收,然后再回过头来学习。



有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

58515 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传