如何将函数传递给另一个函数,而不会导致传入的函数在作为参数被读取时被调用?
以下是一个简单地通过参数调用的函数示例。
func second() {
print("second")
}
func first(_: ()) {
print("first")
}
first(second())
-------console output--------
second
first
我希望将第二个传递给第一个,这样我就可以在第一个体内的某个地方调用第二个(),但正如你所看到的,第二个只是作为一个参数立即调用。
答案 0 :(得分:0)
func first(_: ()) {
print("first")
}
这是一个以Void
为参数的函数(并忽略它)。 Void
是空元组()
的类型。你的意思是:
func first(f: () -> Void) {}
这是一个函数,它接受一个不返回任何内容的函数(并调用其参数f
而不是忽略它)。
first(second())
这会调用second
,然后将结果传递给first
。你的意思是:
first(second)