Go之回调函数

Python08

Go之回调函数,第1张

高阶函数

  根据go语言的数据类型的特点,可以将一个函数作为另一个函数的参数

  fun1(),fun2()

    将fun1函数作为fun2这个函数的参数。

  fun2函数:高阶函数

    接受了一个函数作为参数的函数,高阶函数

  fun1函数:回调函数

    作为另一个函数的参数的函数,叫做回调函数

是的,若形参有默认值,可以传递该参数的值,也可以不传递,但形参的默认值要从形参列表最右端开始设置,如: int sum(int x, int y=2, int z=8)这样设置是对的,可以全部设置默认值,也可以部分设置默认值 int sum(int x = 3, int y, int z)

从语法讲,重载是扩展了函数(或方法)签名,从只认名字变为名字+参数类型,所以题主这个例子只要把不同参数的foo函数改成不同名字就好,比如foo1,foo2……

这个不支持按官方说法,是为了保持语法简单,以及避免工程中遇到一些问题,比如参数隐式转换等等

而支持重载的语言也有它们的道理,有时候,函数或方法名字不是程序员自己能控制的,比如说,如果java不支持重载,那么只能有一个构造函数,通过不同输入构造对象就比较麻烦,需要弄成静态方法create的方式: