Swift 2.1 关闭

标签 swift swift2

首先,我为我的英语道歉! 请帮我检测一下我的错误。

let arrayInt = [0, 1, 2, 3, 4, 5, 7, 8, 9]

func myF(array: [Int], cl:(n1: Int, n2: Int) -> Bool) -> Int {

    var number : Int

    for value in array {
        if cl(n1: number, n2: value) {
            number = value
        }
    }

    return number

}

myF(arrayInt, { cl: (n1: Int, n2: Int) -> Bool in 
    return n1 < n2
})

该函数接受一个 Int 数组,闭包返回 Int。闭包应该接受两个 Int 数字并返回 Bool yes 或 no。有必要遍历数组并使用闭包将数组元素与变量进行比较。如果闭包返回是,则将数组的值写入变量。在函数结束时返回变量。我们需要找到数组中的最大值和最小值。

我有 3 个问题:

  1. 一行中的连续语句必须用';'分隔
  2. 预期的表达
  3. 闭包参数列表的上下文类型需要 2 个参数,不能被隐式忽略

请不要建议我使用方法“sort()”。我正在学习“闭包”。

最佳答案

首先你需要初始化你的number变量:var number : Int -> var number = 0

其次,带闭包的函数调用不正确。有几种方法可以调用闭包:

let y = myF(arrayInt, cl: { (n1: Int, n2: Int) -> Bool in
    return n1 < n2
})

let x = myF(arrayInt) { (n1, n2) -> Bool in
    return n1 < n2
}

甚至

let z = myF(arrayInt) { n1, n2 in
    return n1 < n2
}

let w = myF(arrayInt) { $0 < $1 }

This linkthis one应该对你有帮助

完整代码示例:

let arrayInt = [1, 2, 3, 0, 4]

func myF(array: [Int], cl: (n1: Int, n2: Int) -> Bool) -> Int {
    var number = 0
    for i in array {
        if cl(n1: number, n2: i) {
            number = i
        } 
    }
    return number
}


let x = myF(arrayInt) { (n1, n2) -> Bool in
    return n1 < n2
}

关于Swift 2.1 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34806813/

相关文章:

swift - 如何获得 CFAttributedString 的 *real* 高度

swift - AVFoundation:如何实时将视频写入文件而不是使用 exportAsync?

ios - 如何在 Swift 中将类名指定为变量?

ios - self.textField.delegate = self 如何快速工作?

arrays - 惰性属性中的 "Instance member cannot be used on type"错误

ios - 如何在 iOS 中将生动的文本向上移动?

swift - MacOS 中的 NSSlider 缩放功能不起作用

swift - 无法将类型 'Promise<[NSDictionary]>' 的值转换为预期的参数类型 'Guarantee<Void>'

ios - 如何在 Swift 2.0 中获取错误消息?

ios - 如何在 Swift 中取消初始化惰性变量?