您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页十一、补充和版本变化

十一、补充和版本变化

来源:化拓教育网

补充

命名规范

文件名

基本规范:

命名建议:

  1. 避免特殊字符:文件名称中不应包含特殊字符或空格,以避免潜在的兼容性问题。
  2. 避免过长名称:文件名称不应过长,以减少文件路径的长度,提高代码的可读性。
  3. 描述性名称:文件名称应具有描述性,能够清晰地反映文件的内容或用途。

与包名保持一致

在Go语言中,文件通常与包相关联。因此,文件名称应该与包名称保持一致,以体现代码的组织结构。例如,如果包名称为order,则文件名称可以是order_service.go,其中order_service是包order中的一个文件。

函数名

基本规范:

  1. 驼峰命名法:函数名应该使用驼峰命名法(Camel Case),即首个单词小写,后续每个单词首字母大写。例如,getUserInfocalculateTotal等。
  2. 小写字母开头:通常,函数名以小写字母开头,表示该函数是私有的,只能在当前包内访问。如果函数需要被其他包访问,即它是导出的(public),则函数名的首字母应该大写。但请注意,这只是约定俗成的做法,并非Go语言的强制规定。实际上,Go语言的可见性是通过标识符的首字母大小写来控制的,而不是通过函数名。然而,为了代码的可读性和一致性,建议遵循这一约定。
  3. 动词开头:函数名应该以动词开头,描述函数所执行的操作。例如,calculategetset等。这有助于清晰地传达函数的意图和功能。

命名建议:

  1. 简洁明了:函数名应该简洁明了,避免使用冗长或难以理解的名称。尽量使用能够准确描述函数功能的单词或短语。
  2. 避免缩写:尽量避免使用缩写或简写作为函数名,除非这些缩写在项目中已经被广泛接受和理解。缩写可能会增加代码的阅读难度。
  3. 避免与标准库冲突:函数命名应避免与Go标准库中的函数名冲突,以减少潜在的混淆和错误。
  4. 考虑上下文:函数名应与函数所在的包和模块的上下文相关联。这有助于更好地理解函数的用途和功能。

变量名

基本规范:

  1. 组成元素:变量名只能由字母(A-Z,a-z)、数字(0-9)和下划线(_)组成。
  2. 首字母规则:变量名不能以数字开头,必须以字母或下划线开头。
  3. 区分大小写:Go语言是区分大小写的,因此ageAge是两个不同的变量。
  4. 避免保留字:变量名不能是Go语言的保留字或关键字,如intfloatif等。

命名建议:

  1. 描述性名称:变量名应具有描述性,能够清晰地表达变量的用途或含义。例如,userAgea更具描述性。
  2. 驼峰命名法:推荐使用驼峰命名法(CamelCase),即除第一个单词外,其他单词的首字母大写。例如,firstNamelastName。对于私有变量(仅在包内可见),可以使用小写字母和下划线分隔单词,如first_namelast_name,但这不是强制性的,只是约定俗成的做法。
  3. 布尔变量命名:对于布尔类型的变量,建议使用ishas开头的名称,以清晰地表示变量的布尔特性。例如,isAvailablehasElements
  4. 避免缩写:尽量避免使用缩写或简写作为变量名,除非这些缩写在项目中已经被广泛接受和理解。缩写可能会增加代码的阅读难度。
  5. 循环变量:在循环中,可以使用单个字母(如ijk)作为临时变量的名称,但应避免与实际使用的变量名称冲突。
  6. 私有字段前缀:对于私有字段或方法,可以使用下划线作为名称的前缀(尽管这不是Go语言的强制规定,但在某些项目中可能作为约定使用),以表示其私有性。然而,请注意,在Go中,私有性是通过标识符的首字母大小写来控制的:小写字母开头的标识符是私有的,大写字母开头的标识符是导出的(即公共的)。

版本变化

for循环

1.22版本for循环的内容有更新。

  1. for range不再使用共享变量:
func main() {
	var slice []int = []int{1, 2, 3, 4, 5}
	for index, value := range slice {
		go func() {
            //1.22版本这里会输出 1,2,3,4,5顺序不一定
            //1.22版本以前,index和value是共享变量,结果大概率会都输出5
            //这里原因是1.22版本每次循环 index,value会创建新的变量,而不是共享变量了
			fmt.Printf("index:%d,value:%d \n", index, value)
		}()
	}
	for {
	}
}
  1. for循环开始支持整型的循环:
func main() {
    //go1.22版本 支持整型的循环
    //注意更新IDE版本,比如goland需要安装新版
	for i := range 10 {
		fmt.Println(i)
	}
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务