当前位置: 首页 > news >正文

环保设备网站建设模板wordpress 加载完毕

环保设备网站建设模板,wordpress 加载完毕,企业网站备案申请,南通建设厅网站计算机科学中只有两件难事:缓存失效和命名。 命名是编程语言的要求,但是好的命名却是为了提高程序的可读性和可维护性。好的命名是什么样子的呢?Go语言的贡献者和布道师Dave Cheney给出了一个说法:“一个好笑话,如果你…

计算机科学中只有两件难事:缓存失效和命名。

命名是编程语言的要求,但是好的命名却是为了提高程序的可读性和可维护性。好的命名是什么样子的呢?Go语言的贡献者和布道师Dave Cheney给出了一个说法:“一个好笑话,如果你必须解释它,那就不好笑了。好的命名也类似。”无论哪门编程语言,良好的命名都应该遵循一些通用的原则,但就像之前提到的“语言影响思维”的假说那样,不同的编程语言会有一些个性化的命名惯例。

在gofmt的帮助下,Go语言统一了代码风格标准,Gopher再也无须为括号摆放位置、使用制表符还是空格、是否对齐赋值操作等而争论了。在这种情况下,命名成了广大Gopher为数不多可以“自由发挥”的空间。不过关于命名,Go语言也有自己期望大家共同遵循的原则。

下面将详细阐述这两个原则以及在这两个原则下的一些命名惯例。

简单且一致

对于简单,我们最直观的理解就是“短小”,但这里的简单还包含着清晰明确这一前提。

下面是Go语言中一些常见类别标识符的命名惯例。

1. 包

对于Go中的包(package),一般建议以小写形式的单个单词命名。Go标准库在这方面给我们做出了很好的示范

在这里插入图片描述

我们在给包命名时不要有是否与其他包重名的顾虑,因为在Go中,包名可以不唯一。

比如:foo项目有名为log的包,bar项目也可以有自己的名为log的包。

示例如下。

import "github.com/bigwhite/foo/log" // log.XX中的log指代github.com/ bigwhite/foo/log下的包
import barlog "github.com/bigwhite/bar/log" // barlog这个显式包名指代git

Go语言建议,包名应尽量与包导入路径(import path)的最后一个路径分段保持一致。

比如:包导入路径golang.org/x/text/encoding的最后路径分段是encoding,该路径下包名就应该为encoding。

但在实际情况中,包名与导入路径最后分段不同的也有很多。
比如:实时分布式消息队列NSQ的官方客户端包的导入路径为github.com/nsqio/go-nsq,但是该路径下面的包名却是nsq。笔者分析这主要是为了用仓库名称强调该实现是针对Go语言的,比如go-nsq的意义是这是一份Go语言实现的NSQ客户端API库,为的是与nsq-java、pynsq、rust-nsq等其他语言的客户端API进行显式区分。

此外,我们在给包命名的时候,不仅要考虑包自身的名字,还要兼顾该包导出的标识符(如变量、常量、类型、函数等)的命名。

2. 变量、类型、函数和方法

一个Go工程中包的数量是有限的,变量、类型、函数和方法的命名占据了命名工作的较大比重。

Go语言官方要求标识符命名采用驼峰命名法(CamelCase),以变量名为例,如果变量名由一个以上的词组合构成,那么这些词之间紧密相连,不使用任何连接符(如下划线)。

驼峰命名法有两种形式:

1)一种是第一个词的首字母小写,后面每个词的首字母大写,叫作“小骆峰拼写法”(lowerCamelCase),这也是在Go中最常见的标识符命名法;

2)而 第 一 个 词 的 首 字 母 以 及 后 面 每 个 词 的 首 字 母 都 大 写, 叫 作“大 驼 峰 拼 写法”(UpperCamelCase),又称“帕斯卡拼写法”(PascalCase)。

3)由于首字母大写的标识符在Go语言中被视作包导出标识符,因此只有在涉及包导出的情况下才会用到大驼峰拼写法。不过如果缩略词的首字母是大写的,那么其他字母也要保持全部大写,比如HTTP(Hypertext Transfer Protocol)、CBC(Cipher Block Chaining)等

为变量、类型、函数和方法命名时依然要以简单、短小为首要原则。

感受一下Go命名惯例带来的效果:

// 不好的命名
func RuneCount(buffer []byte) int {
runeCount := 0
for index := 0; index < len(buffer); {
if buffer[index] < RuneSelf {
index++
} else {
_, size := DecodeRune(buffer[index:])
index += size
}
runeCount++
}
return runeCount
}
// 好的命名
func RuneCount(b []byte) int {
count := 0
for i := 0; i < len(b); {
if b[i] < RuneSelf {i++
} else {
_, n := DecodeRune(b[i:])
i += n
}
count++
}
return count
}

Go语言命名惯例深受C语言的影响,这与Go语言之父有着深厚的C语言背景不无关系。

http://www.yayakq.cn/news/306239/

相关文章:

  • 辽宁数据网站建设哪家便宜宁波做网站哪家公司好
  • 上海工程建设交易信息网站成功的网站应该具备哪些要素
  • 做网站 橙色怎么搭配wordpress 数据库名称
  • 网站建设中目录是什么意思共和网站建设公司
  • 企业网站建设一般要素包括巨量引擎广告投放平台官网
  • wordpress 网站底部美化北京app外包
  • 基于php技术的网站建设长春网站建长春做网站
  • 惠州市建设厅网站广州网站建设是什么意思
  • 邢台市政建设集团网站老牌网站建
  • 有产品做推广,选哪个 网站wordpress会员卡
  • 天猫网站设计北京外贸进出口公司
  • 门户网站开发技术网站开发H5
  • 网站建设的相关论文新闻头条今天最新消息
  • 百度网站托管网站建设所需的软件
  • 中国空间站视频绩效评估评价网站建设
  • 菏泽网站建设熊掌号项目计划书格式模板
  • 大连建设学校网站院长电子商务企业有哪些
  • dedecms建网站相册排版设计
  • 天津市网站制作建设推广公司济宁网上做科目一的网站
  • 泰州市建设局审图中心网站外贸建站网站推广
  • 吉安做网站多少钱做美食推广的网站有哪些
  • 商业网站大全益阳网站制作公司地址
  • 网站布局设计规则网站建设空白栏目整改报告
  • 如何建网站免费网站建设外出考察信息
  • 广州市白云区建设局 网站北京最新消息今天新增病例
  • 安阳做网站的公司有哪些济南市网站建设企业
  • 襄阳市建设厅官方网站游戏直播网站怎么做的
  • 大兴网站开发网站建设做网站用什么开源
  • 建筑网站建设案例天津泰达建设集团网站
  • 网站语言选择网络营销课程思维导图