目录

2.10 Go语言中的注释、关键字、内置函数和操作符

注释

一段好的代码就像艺术品,让读的人越看越有味道。注释是帮助他人理解代码最好的途径,合理添加的注释大幅度提高代码可读性。代码中的注释每个人原则都不同,我的原则是让读我代码的人,不需要问我的情况下就可以看懂全部内容。

Go语言中的注释与C语言中保持一致,一种是双斜线开头的//,一种是区域注释/* … */

双斜线注释

//后面的空格并不是必须得,但是从美观角度来说,建议加上

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
// For more tutorials  : https://learngoprogramming.com
// In-person training  : https://www.linkedin.com/in/inancgumus/
// Follow me on twitter: https://twitter.com/inancgumus

// package main is a special package
// it allows Go to create an executable file

区域注释

1
2
3
4
5
6
7
/*
This is a multi-line comment.
import keyword makes another package available
for this .go "file".
import "fmt" lets you access fmt package's functionality
here in this file.
*/

代码内部注释

当然代码注释内部既可以写在顶部,也可以写在和代码同行的尾部,我个人习惯写在顶部,这样比较容易区分,写在代码尾部的注释类似评论,能更快速的解释代码,所以呢,还是看需求。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
package main

import (
	"fmt"
)

func main() {
	// Print “Hello, World!” to console
	fmt.Println("Hello, World!") // Use fmt to print out
}

常用关键字(按照字母顺序)

关键字说明
break阻断for循环,2.8节已经讲过了
case用于和swtich…case或select…case,其中switch…case在2.9节讲到,select…case会在并发中的channel提到
chan管道定义,会在并发章节中提到
const常量定义关键字,2.3节讲过了
continue进入下一次循环,2.8节讲过了
default默认行为,在switch…case中用到过,2.9节有示例
defer延迟函数,下一章函数会讲到
else与if搭配,在2.7节讲过了
fallthrough在2.9节switch…case中讲到,用于继续执行switch中其他case
for循环,2.8节讲过了
func函数定义,下一章就要讲到
go这个不是外部命令go,而是用于实现Goroutines的关键字,并发章节会讲到
goto强制改变代码执行逻辑,破坏代码执行逻辑,所以没有讲
if条件判断,2.7节已经讲过了
import用于导入Module关键字,这些例子一直在用
interface接口定义关键字,接口章节会用到
mapGo语言中的哈希,2.6节讲到
package包定义关键字,Packages会讲到
range搭配for,能够对数组、切片、Map、字符串、Channel进行循环,2.8节讲过,后面讲到并发Channel时还会用到
return函数返回,函数章节会讲到
select和switch相似,主要用于Channel,并发章节会讲到
stuct结构体定义,进阶章节会讲到
switchif elseif的另一种表达方式,2.9节已经讲到
type自定义类型定义关键字,后面讲到进阶中的结构体时会大量用到
var变量定义关键字,在例子中大量出现

常用内置函数(按关键字排序)

函数名称说明
close用于关闭channel,并发章节会讲到
delete删除maps的元素,2.6节Map的CURD操作用到过
len多种对象的长度,包括字符、maps、slice和数组,很多例子中出现了,2.5节特别提到过与cap区别
cap类似len,返回对象的实际容量,2.5节讲过
newGo语言中数据类型分配内存,与make有类似的作用,没有特别提到或用到,主要使用make方法较多,这一部分也许后面会出单独的一节来重点讲解和make区别
make内部类型分配内存
append在slice中增加元素,在2.5节讲到
copy拷贝slice,在2.5节讲到
panic用于异常处理,函数章节会讲到
recover用于异常处理,函数章节会讲到
print底层打印函数,主要用于调试,我们代码的例子都是用fmt模块中的print方法
println底层打印函数,主要用于调试
complex/real/imag主要用于处理compex numbers,没有特别讲到,如有需要后续会单独去讲这一部分

操作符优先级

PrecedenceOperator(s)备注
Highest* / % « » & &^&
`+ -+ 可以用于证书、浮点、复杂数字的连接
== != < <= > >=
<-
&&&& 和
Lowest||