2016-10-07 50 views
0

如何将函数传递到另一个函数而不会导致传入的函数在读取参数时被调用?Swift:将func传递给func调用传入的func

这是一个简单地通过作为参数被调用的函数的例子。

func second() { 
    print("second") 
} 

func first(_:()) { 
    print("first") 
} 

first(second()) 

-------console output-------- 
second 
first 

我想通过第二到第一,这样我可以调用第二个()内第一的身体某处,但你可以看到,第二个得到由作为一个参数调用立即简单。

回答

0
func first(_:()) { 
    print("first") 
} 

这是一个以Void作为参数(并忽略它)的函数。 Void是空元组()的typealias。您的意思是:

func first(f:() -> Void) {} 

这是一个函数,它不返回任何内容的功能(并调用它的参数f,而不是忽略它)。

first(second()) 

这就要求second,然后将结果传递给first。你的意思是:

first(second)