golang25个基础关键词注释

1:break :

一个 break 的作用范围为该语句出现后的最内部的结构,它可以被用于任何形式的 for 循环(计数器、条件判断等)。但在 switch 或 select 语句中(详见第 13 章),break 语句的作用结果是跳过整个代码块,执行后续的代码。

2:default :

我们知道对于select语句,每个case的IO事件都是阻塞的,监听IO事件是不会占用CPU至满的。造成CPU占用的原因是这个空default,因为当case的条件不满足时,循环将会走default,然后执行下一个循环,这就造成了死循环,因此在使用for-select语句的时候不能定义空的default

3:func :

func 用于定义函数和方法

4:interface

interface 类型定义了一组方法,如果某个对象实现了某个接口的所有方法,则此对象就实现了此接口。详细的语法参考下面这个例子:

。。。

5:select :

select 默认是阻塞的,只有当监听的 channel 中有发送或接收可以进行时才会运行,当多个 channel 都准备好的时候,select 是随机的选择一个执行的。

6:case :

左花括号{必须与switch处于同一行;

 条件表达式不限制为常量或者整数;

 单个case中,可以出现多个结果选项;

 与C语言等规则相反,Go语言不需要用break来明确退出一个case;

 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;

 可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if…else…的逻辑作用等同。

7:defer :

Go 语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个 defer 语句。当函数执行到最后时,这些 defer 语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。如下代码所示,我们一般写打开一个资源是这样操作的:

8:go :

go用于并发

9:map :

用于声明map类型数据

10:struct :

Go 语言中,也和 C 或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型 person 代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型我们称之 struct。如下代码所示:

11:chan :

可以通过它发送或者接收值。这些值只能是特定的类型: channel 类型。定义一个 channel 时,也需要定义发送到 channel 的值的类型。注意,必须使用 make 创建 channel:

12:else :

13:goto :

Go 有 goto 语句 —— 请明智地使用它。用 goto 跳转到必须在当前函数内定义的标签。例如假设这样一个循环:

14:package :

√package是golang最基本的分发单位和工程管理中依赖关系的体现。

   √ 每个golang源代码文件开头都拥有一个package声明,表示该golang代码所属的package。

   √ 要生成golang可执行程序,必须建立一个名为main的package,并且在该package中必须包含一个名为main()的函数。

   √ 在golang工程中,同一个路径下只能存在一个package,一个package可以拆成多个源文件组成。

   √ import关键字导入的是package路径,而在源文件中使用package时,才需要package名。经常可见的import的目录名和源文件中使用的package名一致容易造成import关键字后即是package名的错觉,真正使用时,这两者可以不同。

15:switch :

有些时候你需要写很多的 if-else 来实现一些逻辑处理,这个时候代码看上去就很丑很冗长,而且也不易于以后的维护,这个时候 switch 就能很好的解决这个问题。它的语法如下:

16:const :

17:fallthrough :

sExpr和expr1、expr2、expr3的类型必须一致。Go的switch非常灵活,表达式不必是常量或整数,执行的过程从上至下,直到找到匹配项;而如果switch没有表达式,它会匹配true。 Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码,fallthrough不会判断下一条case的expr结果是否为true。

18:if :

如果满足条件就做某事,否则做另一件事。

Go 的 if 还有一个强大的地方就是条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条件逻辑块内,其他地方就不起作用了,如下所示:

多个条件的如下所示:

19:range :

range 用于读取 slice、map、channel 数据

20:type :

type 用于声明自定义类型

21:continue :

关键字continue只能被用于for循环中

22:for :

Go 里面最强大的一个控制逻辑就是 for,它既可以用来循环读取数据,又可以当作 while 来控制逻辑,还能迭代操作。它的语法如下:

expression1、expression2 和 expression3 都是表达式,其中 expression1 和 expression3 是变量声明或者函数调用返回值之类的,expression2 是用来条件判断,expression1 在循环开始之前调用,expression3 在每轮循环结束之时调用。

一个例子比上面讲那么多更有用,那么我们看看下面的例子吧:

23:import :

我们在写 Go 代码的时候经常用到 import 这个命令用来导入包文件,而我们经常看到的方式参考如下:

24:return :

return用于从函数返回

25:var :

使用 var 关键字是 Go 最基本的定义变量方式,与 C 语言不同的是 Go 把变量类型放在变量名后面:

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
0
收藏
0
排名:3420
访问:59
私信
所有博文
社区赞助商