GO语言语法学习进度(3)

1.关键字chan通道


2.关键字defer

①若函数中有多个defer,其执行顺序为先进后出,可以理解为栈。

package main

import "fmt"

func main() {

  for i := 0; i < 5; i++ {

    defer fmt.Println(i)

  }

}

Output:

4

3

2

1

0

②return会做几件事

    1.给返回值赋值;

     2.调用defer表达式;

     3.返回调用函数;

    若defer表达式有返回值,将会被丢弃。

package main

import "fmt"

func main() {

    fmt.Println(increase(1))

}

func increase(d int) (ret int) {

  defer func() {

    ret++

  }()

  return d

}

Output:

2

你可能感兴趣的:(GO语言语法学习进度(3))