Go从入门到精通——计算中的异常处理

计算中的异常处理

  Go 语言处理程序运行异常的方法与目前大多数主流开发语言都有所不同,不是使用常见的 try-catch 代码块的方式,而是使用了 panic-defer-recover 机制。

1、Go语言的匿名函数

  Go 语言中文支持匿名函数(anonymous function),这是一个高级机制,可以把函数当作一个值并赋值给变量。

package main

import (
	"fmt"
)

func main() {
	a := func() {
		fmt.Println("TEST")
	}
	a() //调用 func(),函数中打印一次 "TEST"
	var b func()
	b = a
	b() //调用 func(),函数中打印一次 "TEST"
}

Go从入门到精通——计算中的异常处理

  将一个函数赋值给了变量 a,这是一个匿名函数的基本用法。

  由于匿名函数,所以 func 关键字之后没有函数名而是表示函数参数声明的圆括号。由于本例中的函数不需要参数,所以圆括号内不需要任何内容,函数体的花括号内仅调用 fmt.Println 函数输出一个字符串 "TEST"。由于此时变量 a 已经是一个函数类型变量,它的值就是一个函数,所以可以直接用 a() 的形式来调用该函数,即用变量名加上表示函数参数声明的圆括号。

注意:

  匿名函数既不需要参数也没有返回值,因此函数类型的变量声明仅写 func() 就可以了,如果有参数或返回值,需要加上相应的内容。

 

package main

import (
	"fmt"
)

func main() {
	a := func(s string) string {
		fmt.Println("收到" + s)
		return "OK"
	}
	a("TEST")
	var b func(string) string
	b = a
	b("nice")
}

 

  

package main

import (
	"fmt"
)

func main() {
	a := func(s string) string {
		fmt.Println("收到" + s)
		return "OK"
	}
	a("TEST")
	var b func(string) string
	b = a
	b("nice")
}

  

 

 missing return at end of function

Go从入门到精通——计算中的异常处理

上一篇:海底电缆公司


下一篇:svg点击播放音乐