Go-技篇第二 命名规范
优秀的命名
优秀的命名应当是一贯的、短小的、精确的。
所谓一贯,就是说同一个意义在不同的环境下的命名应当一致,譬如依赖关系,不要在一个方法中命名为depend,另一个方法中命名为rely。
所谓短小,不必多言,当命名过长的时候,读者可能更关注命名本身,而忽视真正的逻辑内容。
所谓精确,就是命名达意、易于理解
首条经验
声明位置与使用位置越远,则命名应当越长。
骆驼命名法
Go语言应该使用 MixedCase
(不要使用 names_with_underscores)
首字母缩写词都应该用大写,譬如ServeHTTP
、sceneID
、CIDRProcessor
。
局部变量
局部变量应当尽可能短小,譬如使用buf
指代buffer
,使用i
指代index
在很长的函数中可能会有很多的变量,这个时候可以适当使用一些长名字。
但是写出这么长的函数,通常意味着代码需要重构了!??
参数
函数的参数和局部变量类似,但是它们默认还具有文档的功能
当参数类型具有描述性的时候,参数名就应该尽可能短小:
func AfterFunc(d Duration, f func()) *Timer
func Escape(w io.Writer, s []byte)
|
当参数类型比较模糊的时候,参数名就应当具有文档的功能:
返回值在Go语言中,返回值可以定义名称的,它可以当做一种特殊的参数。
func Unix(sec, nsec int64) Time
func HasPrefix(s, prefix []byte) bool
|
转载于:https://www.cnblogs.com/zhangboyu/p/01fb1e0fc19c02e3f6460ebbb6dd61c8.html
Go-技篇第二 命名规范相关推荐
- 前端系统化学习【JS篇】:(三)Javascript中的命名规范
前言 细阅此文章大概需要 4分钟\color{red}{4分钟}4分钟左右 本篇中讲述了: JS中的命名规范 如果有任何问题都可以留言给我,我看到了就会回复,如果我解决不了也可以一起探讨.学习.如果认 ...
- Java 命名规范(非常全)
欢迎关注方志朋的博客,回复"666"获面试宝典 在本文中,将从大到小,从外到内,总结Java编程中的命名规范.文中将会涉及到日常工作中常见的命名示例,如包命名,类命名,接口命名,方 ...
- Java 命名规范(非常全面)
来源:https://www.ramostear.com/blog/2020/03/20/2vxdaqjq.html 最近发现很多初级程序员写代码时很不规范,比如方法名 类名 等,如果遇到有代码洁癖的 ...
- Go 指针,标识符命名规范及关键字
#### Go 指针,标识符命名规范,关键字,运算符回顾了一下之前写的文章,以及考虑到后期的内容较多, 从这篇开始逐渐增加文章内容; 这篇我们主要学习一Go 中的指针,标识符关键字以及运算符##### ...
- java标识符定义_Java标识符命名规范
无论是哪一种计算机语言,都少不了标识符的存在.Java零基础的朋友们想要学好java语言,在基础阶段就要学习java标识符的内容,其中java标识符命名规范是不可缺少的重点知识,下面这篇文章带零基础的 ...
- FPGA知识汇集-值得收藏的FPGA代码命名规范?
命名规范 随者FPGA设计的日益复杂,设计实践.方法和流程逐渐成为重要的成功因素.良好的设计能有效影响FPGA设计的性能和逻辑利用,使系统可靠性显著提高,产品可以更快投入到市场.相反,不良的设计可能会 ...
- java的标示符规则与名称命名规范
1.在讲java标示符的规则之前我给大家介绍下什么是标示符 标示符: ->java对各种变量.方法和类等要素命名时使用的字符序列称为标示符. ->凡是自己可以起名字的地方都叫标示符. 定义 ...
- Java命名规范--阿呆
最近发现很多初级程序员写代码时很不规范,比如方法名 类名 等,如果遇到有代码洁癖的领导肯定会被骂(什么垃圾代码),下面分享一篇不错的规范文章 在本文中,将从大到小,从外到内,总结Java编程中的命名规 ...
- 软件项目、产品版本号的命名规则、定义、命名规范(git代码分支版本、项目产品文档版本)
文章目录 前言 一.关于对项目.产品版本的一些学习探索 问题:大家都是怎么样定义版本号的?(参考资料) 二.我在团队中是这是实践的 团队版本号实践 总结 前言 工作几年了,最近在总结项目.产品版本号命 ...
最新文章
- Jenkins使用遇到的问题总结
- Logstash在Linux上安装部署
- linux文件属性 -rwxr-xrw,Linux文件属性
- 深入Python(5):递归
- 2016.NET Core相关内容回顾
- 8月23号刚刚发布的 Flink 1.9 到底优化了哪些功能?
- Rocky4.2下安装达梦(DM)6数据库
- vb.net word 自定义工具栏_Word|用这20个技巧办公从此告别龟速工作
- iOS开发之抓包工具的Charles的初步安装使用:一步一步教你学会抓包工具Charles的使用(下载破解+代理设置+证书配置)
- EXP-00091: Exporting questionable statistics.问题解决!(转)
- 关于开发板不断eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 eth0: link down的问题
- 【金融财经】金融市场一周简报(2017-08-25)
- mysql slave_pending_jobs_size_max_3分钟解决MySQL 1864 主从错误
- 小象学院数据分析笔记:绘制常见的图形
- OpenCV的Rect矩形类简介和使用
- ei会议论文录用但不参加会议_同一个EI会议录用的文章一定全部都进EI吗?
- 海南信用社计算机试题,2018海南农村信用社考试 计算机 模拟试卷六答案
- 否打开人工智能的“黑箱”?
- 矩阵与矩阵的乘法运算
- 给你心爱的 npm 包上个『北京户口』
热门文章
- 系统学习 TypeScript(五)——联合类型
- c语言如果调用的函数没有return,C语言中,整型函数若在调用时未获得return值,此时其值是如何确定的?...
- IIS URL Rewriting 和 ASP.NET routing(下)
- window 服务(三)
- thinkphp5 return 返回空_杨丞琳演唱会意外踩空,从两层楼高的舞台掉落,李荣浩心疼发文...
- 关于GDAL计算图像坐标的几个问题
- 在C#中获取如PHP函数time()一样的时间戳
- C# WinForm绘图相关
- 企业微信应用设置可信域名_怎么设置企业微信朋友圈功能?企业微信朋友圈功能有哪些限制?...
- 【java学习之路】(java SE篇)009.IO