我是靠谱客的博主 鲜艳天空,这篇文章主要介绍(二) Go的关键字,现在分享给大家,希望可以做个参考。

for


Go 只设计了一种循环 就是 for 循环。

基本的 for 循环包含三个组成部分(由 分号 分开):

复制代码
1
2
for i:=1; i < 10; i++ {   // i:=1 初始化语句
  // i < 10 循环条件表达式
  // i++ 后置语句
}

  初始化语句;循环条件表达式;后置语句

    初始化语句:在第一次循环执行前被执行

    循环条件表达式:每次迭代开始前被求值

    后置语句:每次迭代后被执行

初始化语句一般是一个短变量什么,这里声明的变量只能在整个 for 循环作用域中可见。

如果条件表达式的值为 false , 那么迭代终止。

注:Go 不像C,Java,或者Javascript 等其他语言,for语句的三个组成部分 并不需要用括号括起来,但循环体必须用 {} 括起来 表明作用域。

另:循环初始化语句和后置语句都是可选的。

  for 是 Go 的 "while" 基于此可以省略分号: C 的 while 在 Go 中叫 for

  循环条件可以省略,如果省略了则循环不会结束,

复制代码
1
2
3
for {   //做你要做的 }

  因此可以用简洁地形式表达死循环。

 

if


 

就像 for 循环一样,Go 的 if 语句也不要求用 () 将条件括起来,同时, {} 还是必须有的。

if 的便捷语句

  跟 for 一样,if 语句可以在条件之前执行一个简单语句。

  由这个语句定义的变量的作用域仅在 if 范围之内。

if 和 else

  在 if 的便捷语句定义的变量同样可以在任何对应的 else 块中使用。

复制代码
1
2
3
4
if ok:=func(); ok {    } else { }

  

 

switch


复制代码
1
2
3
4
5
6
7
8
9
num := 0 switch { case num < 1: fallthrough case num <= 2: fmt.Println("num <= 2") default: fmt.Println("default") }

除非以 fallthrough 语句结束,否则分支会自动终止。

switch 的执行顺序

  switch 的条件从上到下的执行,当匹配成功的时候停止。

  注意:Go playground 中的时间总是从 2009-11-10 23:00:00 UTC 开始。

没有条件的switch

  没有条件的 switch 同 switch true 一样。

  这一构造使得可以用更清晰的形式来编写长的 if - then - else 链

 

defer


 

defer 语句会延迟函数的执行直到上层函数返回。

延迟调用的参数会立刻生成,但是在上层函数返回前函数都不会被调用。

defer 栈

  延迟的函数调用被压入一个栈中。但函数返回时,会按照后进先出的顺序调用被延迟的函数调用。

eg:

例中 defer 后的 fmt.Println("defer") 将会在 main 的 return 后执行

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
func main() {   defer fmt.Println("defer")   num := 0   switch {     case num < 1:   fallthrough     case num <= 2:   fmt.Println("num <= 2")     default:   fmt.Println("default")   }   return }

 

转载于:https://www.cnblogs.com/questionmark/articles/7365273.html

最后

以上就是鲜艳天空最近收集整理的关于(二) Go的关键字的全部内容,更多相关(二)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部