规范的代码风格要求 | 学习笔记

简介: 简介:快速学习规范的代码风格要求

开发者学堂课程【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 变化后--有正确的缩进,代码更加清楚

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.使用

1)使用一次 tab 操作,实现缩进,默认整体向右边移动,时候用 shift+tab 整体向左移

l 举例

假设此时的11行到13行排版稍乱,只需全部选中,按下 shift+tab 就能够快速整体向左移动,再按 tab 键即可向右移动至格式工整。

① 代码如下:

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张飞")

}

调整前

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 命令后的输出结果格式改变。

image.png

将原文件中代码格式改变,需再输入 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")

输出结果:各行就会依次换行输出

相关文章
|
安全 程序员 C++
代码规范:函数设计
除非告诉人们“危险”是什么,否则这个警告牌难以起到积极有效的作用。难以理解的断言常常被程序员忽略,甚至被删除。 ↩︎
82 0
|
JavaScript 前端开发 搜索推荐
|
XML 算法 安全
C#编码规范
本篇内容记录了 命名惯例和规范、 ** 良好的编程习惯、** 注释 、 ** 异常处理
576 0
C#编码规范
|
前端开发 JavaScript
|
算法 IDE 程序员
代码编写规范
代码编写规范
|
移动开发 前端开发 JavaScript
前端编码规范
前端编码规范
677 0
|
JSON 前端开发 JavaScript
规范(一):代码规范
规范(一):代码规范
规范(一):代码规范
|
IDE 编译器 程序员
C++ 最佳实践 | 2. 代码风格
C++ 最佳实践 | 2. 代码风格
196 0
|
Java
开发规范实战(一)代码书写规范
开发规范实战(一)代码书写规范
199 0
开发规范实战(一)代码书写规范