开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map :规范的代码风格要求】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9505
规范的代码风格要求
内容介绍
一、正确的注释和注释风格
二、正确的缩进和空白
三、代码风格
一、正确的注释和注释风格
1) Go 官方推荐使用行注释来注释整个方法和语句。
2) 带看 Go 源码
图为 go 中的源代码,可以看出基本使用的都为行注释,可以看出原作者的注释也以行注释为主,因而我们借鉴源代码,以行注释为主。
二、正确的缩进和空白
1.示例:
如以下代码,适当添加缩进会较为美观
l 变化前:
package main
import "fmt”
//fmt表示
格式化的包
,
包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
//如果希望一次性注释ctrl+/ 第一次表示注释,第二次表示取消注释
fmt.Println("tomtjack")
fmt.Println( "hello\nworld") // \n表示换行输出
fmt.Println("c
: \\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
fmt.Println( "tom说\"i love you\"")
fmt.Println("天龙八部雪山飞狐\r张飞")
}
l 变化后--有正确的缩进,代码更加清楚
import "fmt”
//fmt表示
格式化的包
,
包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
//如果希望一次性注释ctrl+/ 第一次表示注释,第二次表示取消注释
fmt.Println("tomtjack")
fmt.Println( "hello\nworld") // \n表示换行输出
fmt.Println("c
:
\\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
fmt.Println( "tom说\"i love you\"")
fmt.Println("天龙八部雪山飞狐\r张飞")
}
2.使用
1)使用一次 tab 操作,实现缩进,默认整体向右边移动,时候用 shift+tab 整体向左移
l 举例
假设此时的11行到13行排版稍乱,只需全部选中,按下 shift+tab 就能够快速整体向左移动,再按 tab 键即可向右移动至格式工整。
① 代码如下:
import "fmt”
//fmt表示
格式化的包
,
包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
/如果希望一次性注释ctrl+/ 第一次表示注释,第二次表示取消注释
fmt.Println("tomtjack")
fmt.Println( "hello\nworld") // \n表示换行输出
fmt.Println("c
:
\\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
fmt.Println( "tom说\"i love you\"")
fmt.Println("天龙八部雪山飞狐\r张飞")
}
(调整前)
package main
import "fmt”
//fmt表示
格式化的包
,
包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
//如果希望一次性注释ctrl+/ 第一次表示注释,第二次表示取消注释
fmt.Println("tomtjack")
fmt.Println( "hello\nworld") // \n表示换行输出
fmt.Println("c
:
\\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
fmt.Println( "tom说\"i love you\"")
fmt.Println("天龙八部雪山飞狐\r张飞")
}
(调整后)
2)或者使用 gofmt 来进行格式化[演示]
l 举例
按照刚才代码案例,将代码任意缩进。
package main
import "fmt”
//fmt表示
格式化的包
,
包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
//如果希望一次性注释ctrl+/ 第一次表示注释,第二次表示取消注释
fmt.Println("tomtjack")
fmt.Println( "hello\nworld") // \n表示换行输出
fmt.Println("c
:
\\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
fmt.Println( "tom说\"i love you\"")
fmt.Println("天龙八部雪山飞狐\r张飞")
}
( 执行命令前 )
在命令窗口中输入 dos 令:
gofmt main.go,执行成功后,即显示出结果,可看出代码格式已被对齐,但此时原文件中的代码格式并未发生改变,仅执行 gofmt 命令后的输出结果格式改变。
要将原文件中代码格式改变,需再输入 dos 命令:gofmt -w main.go
执行后,适当切换文件,再次打开即可看到改变格式的代码(如图)。
package main
import "fmt”
//fmt表示
格式化的包
,
包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
//如果希望一次性注释ctrl+/ 第一次表示注释,第二次表示取消注释
fmt.Println("tomtjack")
fmt.Println( "hello\nworld") // \n表示换行输出
fmt.Println("c
: \\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
fmt.Println( "tom说\"i love you\"")
fmt.Println("天龙八部雪山飞狐\r张飞")
}
( 执行命令后 )
l 总结:
gofmt 只是将格式化后的内容输出,gofmt -w 是将格式化后的内容重新写入到文件,实现真正的格式改变。当程序员重新打开文件时,就会看到新的格式化后的文件。
3)运算符两边习惯性各加一个空格。比如:2+4* 5。
l 举例:
假设定义一个名为num的变量,值为2+4*5的结果,书写时运算符两边都含有空格。
var num = 2 + 4 * 5
同时,在 go 的源码之中也可以看出,运算符两边需要加上空格。
三、代码风格
1.{}的写法
(1) 错误写法
package main
import "fmt"
func main()
{
fmt.PrintIn("hello,world!")
}
[Go语言不允许这样写, 是错误的! ]
(2) 正确写法
package main
import "fmt"
func main(){
fmt.PrintIn("hello,world!")
}
【该种写法时正确】
原因:
因为 Go 语言设计者认为:一个问题尽量只有一个解决方法,所以认定正确的书写方法只有一种。
(3) 示例
l 代码
package main
import "fmt”
//fmt表示
格式化的包
,
包中提供格式化,输出,输入的函数
func main()
{ //错误,如果将func main()后的{ 移至该行,就会报错
//演示转义字符的使用 \t
//如果希望一次性注释ctrl+/ 第一次表示注释,第二次表示取消注释
fmt.Println("tomtjack")
fmt.Println( "hello\nworld") // \n表示换行输出
fmt.Println("c
:
\\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
fmt.Println( "tom说\"i love you\"")
fmt.Println("天龙八部雪山飞狐\r张飞")
}
l 输出结果
报错,因为{}的格式错误
2. 行长约定
一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅。
(1) 示例
当代码很长,不便查看时。fmt.Println("helloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworld)
可以代码分成几部分用“”括起,再放至下一行,同时使用逗号连接,其中逗号类似与之前提过的+号。
fmt.Println("helloworldhelloworldhelloworldhelloworl",
"dhelloworldhelloworldhelloworldhelloworldhelloworldhellowor",
"ldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworl",
"dhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhel",
"loworldhelloworldhelloworldhelloworldhelloworldhelloworldhellowor",
"ldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworld")
输出结果:仍然与没有添加逗号之前的输出结果一致,输出结果全为一行。
为使显示更加美观,用换行输出,在各行最后添加\n即可
fmt.Println("helloworldhelloworldhelloworldhelloworl",
"dhelloworldhelloworldhelloworldhelloworldhelloworldhellowor\n",
"ldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworl\n",
"dhelloworldhelloworldhelloworldhelloworldhelloworldhelloworldhel\n",
"loworldhelloworldhelloworldhelloworldhelloworldhelloworldhellowor\n",
"ldhelloworldhelloworldhelloworldhelloworldhelloworldhelloworld\n")
输出结果:各行就会依次换行输出