我刚接触Swift,目前正在尝试将函数作为可选参数传递,方法如下:
import Foundation
func foo()
{
print("Foo")
}
func bar()
{
print("Bar")
}
func dummy()
{
return
}
func myFunc()
{
myFunc(callBack: dummy())
}
func myFunc(callBack: (Void))
{
foo()
callBack
}
myFunc()
myFunc(callBack: bar())
即利用多态性
这似乎是一种不太优雅的方法,是否有更好的方法?
谢谢, 汤姆
编辑:
我知道可以通过以下方式缩短:
import Foundation
func foo()
{
print("Foo")
}
func bar()
{
print("Bar")
}
func dummy()
{
return
}
func myFunc(callBack: (Void) = dummy())
{
foo()
callBack
}
myFunc()
myFunc(callBack: bar())
但我仍然认为这是一个不太优雅的解决方案。
(Void)
没有意义,接受空值并返回空值的函数类型应该是() -> Void
。 - user28434'mstep