我有一个Swift函数,它接受一个函数作为参数:
该函数接受两个参数(均为Int类型),并不返回任何值。 < p > < em > 我可以使用非匿名函数成功调用该方法,以下是代码示例。
当调用
我收到一个错误提示,内容如下:
func doMath(_ f:(_ i1 : Int, _ i2 : Int) ->
(), _ i1: Int, _ i2: Int) {
print("doing Math")
f(i1, i2)
}
该函数接受两个参数(均为Int类型),并不返回任何值。 < p > < em > 我可以使用非匿名函数成功调用该方法,以下是代码示例。
func add(_ m1:Int, _ m2: Int){
print (m1 + m2)
}
doMath(add, 3,5)
当调用
doMath
函数时,它会输出:
doing Math
然后调用 add 函数,该函数会输出:
8
什么语法允许使用匿名函数调用 doMath
函数?
我尝试过的:
- 我正在阅读 Matt Neuberg 的 iOS 12 Programming Fundamentals with Swift,但他跳过了解释带参数的匿名方法。
- 我已经进行了谷歌和搜索,但找不到我能够理解的 Swift 示例。
- 我尝试了很多变化,以下是我最接近的,但我得到如下错误:
doMath(5,8, {
(m1:Int, m2:Int) -> () in
print(m1 * m2)
})
我收到一个错误提示,内容如下:
doMath({ .... }, 5,8)
。 - Martin RdoMath
的函数,它接受一个闭包作为第一个参数,以及两个整数作为第二和第三个参数。 - Martin R