Ios 使用闭包作为参数而不使用尾随闭包
使用尾随闭包语法时,似乎很容易理解 但是,我希望在不使用尾部闭包语法的情况下执行此操作Ios 使用闭包作为参数而不使用尾随闭包,ios,swift,Ios,Swift,使用尾随闭包语法时,似乎很容易理解 但是,我希望在不使用尾部闭包语法的情况下执行此操作 func doSomethingTwo(closure: (String) -> Void) { closure("AAA") } doSomethingTwo(closure: print("TEST") ) 给予 无法将类型“()”的值转换为预期的参数类型“(字符串)->Void” 我知道 doSomethingTwo{ (test: String) in print ("\(t
func doSomethingTwo(closure: (String) -> Void) {
closure("AAA")
}
doSomethingTwo(closure: print("TEST") )
给予
无法将类型“()”的值转换为预期的参数类型“(字符串)->Void”
我知道
doSomethingTwo{ (test: String) in
print ("\(test)")
}
可以工作,但希望不使用尾随闭包语法
这不是一个家庭作业问题,我正在看教程,并且做了一些研究,但没有给我这个问题的答案 这就是调用函数的方式
doSomethingTwo()
如果我们遵循这个模式,首先放置()
,然后附带它的参数,您将得到如下结果
doSomethingTwo(closure: { (str) in
print(str)
})
顺便说一下,Xcode
将帮助您完成。但是如果您不需要它的帮助,当您有此功能时,不要轻触,请自己键入其余内容。
您没有正确调用函数。你应该这样称呼它:
doSomethingTwo(closure: { (text) in
print(text)
})
您需要定义自己的打印方法以将其作为参数传递:
func doSomethingTwo(closure: (String) -> ()) {
// when you call the closure you need to pass the string to be printed
closure("TEST")
}
定义打印将传递给闭包的字符串的方法:
let closure: (String) -> () = { print($0) }
然后,您可以随意称呼它:
doSomethingTwo(closure: closure)