像下面这样,我想停止文字,像休息一样
var numbers = [1,2,3,4] numbers.forEach { if $0 % 2 == 0 { break } }
forEach不是一个循环(它是一个块传递给循环,而不是一个循环本身),或者更准确地说,forEach不是Swift控制流的一部分。这是为什么你不能使用break或继续。
只需使用for-in循环。
示例:
var numbers = [ 1,4] func firstEvenNumber(inArray array: [Int]) -> Int? { var firstMatch : Int? for number in numbers { if (number % 2) == 0 { firstMatch = number break } } return firstMatch } firstEvenNumber(inArray: numbers) // 2
您可以在forEach闭包中使用return,但是它不会中断循环,它只返回当前通过的块。
var numbers = [ 1,4] func evenNumbers(inArray: [Int]) -> [Int] { var matches : [Int] = [] numbers.forEach{ if $0 % 2 == 0 { matches.append($0) return } } return matches } evenNumbers(numbers) // [2,4]