泛型:
抛错误异常 实现error接口类型
用java语言解释的话,实现类需要重写error类型的抽象方法Error().这样就可以自定义异常处理。
回到go语言,在Error()方法中用*argError 这样一个指针类来充当error接口的实现类。
在f2()方法中定义返回值类型为error接口类型,return就可以使用&argError对象了。
程序的调用和结果:
go关键字 协程
协程的创建
1)声明一个匿名函数
func(msg string){
fmt.Println(msg)
}
2) 匿名函数的调用
func(msg string){
fmt.Println(msg)
}("going")
3)将匿名函数的调用封装为协程。
go func(msg string){
fmt.Println(msg)
}("going")
协程的特点:
两个协程间是并行运行的,每个协程都是一个独立执行的单元。 协程们可以并发和并行执行。
正确理解协程:
运行main函数只是一个函数的调用,但是main函数本身运行在一个加了go关键字
的协程中,一般把main()称作主协程。
错误理解: