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

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

开发者学堂课程【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++
代码规范:函数设计
除非告诉人们“危险”是什么,否则这个警告牌难以起到积极有效的作用。难以理解的断言常常被程序员忽略,甚至被删除。 ↩︎
100 0
|
存储 设计模式 人工智能
规范:前端代码开发规范
规范:前端代码开发规范
1620 0
|
XML 算法 安全
C#编码规范
本篇内容记录了 命名惯例和规范、 ** 良好的编程习惯、** 注释 、 ** 异常处理
600 0
C#编码规范
|
8月前
|
存储 缓存 算法
代码简洁之道:我们该如何规范代码的命名?
代码简洁之道:我们该如何规范代码的命名?
130 1
|
8月前
|
前端开发 JavaScript 持续交付
前端代码审查规范
前端代码审查规范
171 0
|
前端开发 JavaScript
|
数据采集 算法 Shell
【C#编程最佳实践 七】代码书写规范实践
【C#编程最佳实践 七】代码书写规范实践
139 0
【C#编程最佳实践 七】代码书写规范实践
|
算法 IDE 程序员
代码编写规范
代码编写规范
|
开发工具 git
代码统一风格、代码规范和提交规范
1、安装模块 全局安装 eslint、commitlint 、 check-prettier npm install eslint commitlint check-prettier -g 本地安装 npm install eslint-config-prettier  stylelint  stylelint-config-prettier stylelint-config-standard husky  @commitlint/config-conventional -D VSCode 安装 Eslint和Prettier插件
159 0