ios - 使用闭包作为参数而不使用尾随闭包 Swift
<p><p>使用尾随闭包语法时,<a href="https://stackoverflow.com/a/40467958/1800285" rel="noreferrer noopener nofollow">pass a function as a parameter of another function</a> 似乎很容易。 .</p>
<p>但是我想在不使用尾随闭包语法的情况下这样做</p>
<pre><code>func doSomethingTwo(closure: (String) -> Void) {
closure("AAA")
}
doSomethingTwo(closure: print("TEST") )
</code></pre>
<p>给予
无法将类型 '()' 的值转换为预期的参数类型 '(String) -> Void'</p>
<p>我知道</p>
<pre><code>doSomethingTwo{ (test: String) in
print ("\(test)")
}
</code></pre>
<p>有效,但希望没有尾随闭包语法。</p>
<p>这不是家庭作业问题,我正在查看教程并进行了研究,但没有给我这个问题的答案。 </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>你需要定义自己的打印方法作为参数传递:</p>
<pre><code>func doSomethingTwo(closure: (String) -> ()) {
// when you call the closure you need to pass the string to be printed
closure("TEST")
}
</code></pre>
<p>定义打印将传递给闭包的字符串的方法:</p>
<pre><code>let closure: (String) -> () = { print($0) }
</code></pre>
<p>那么你可以随意调用它:</p>
<pre><code>doSomethingTwo(closure: closure)
</code></pre></p>
<p style="font-size: 20px;">关于ios - 使用闭包作为参数而不使用尾随闭包 Swift,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/54740478/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/54740478/
</a>
</p>
页:
[1]