任何在swift中停止块文字的方法

时间:2015-11-19 01:50:45

标签: swift

如下所示,我希望通过类似<div id="togglemenu2" class="sidetogglemenu"> <table class="hoverTable"> <tbody> <tr> <td>Example</td> </tr> <tr> <td> <div class="logowrap"> <img class="gpablogo" src="http://s2.postimg.org/yb2yzb5fd/gpab.png"> <div class="gpab n1">1</div> <div class="gpab n2">2</div> <div class="gpab n3">3</div> </div> </td> </tr> </tbody> </table> </div>

的内容来停止文字
break

3 个答案:

答案 0 :(得分:74)

forEach不是循环(它是传递给循环的块,而不是循环本身),或者更确切地说,forEach不是Swift 控制流的一部分。这就是您无法使用breakcontinue

的原因

只需使用for-in循环。

示例:

var numbers = [ 1,2,3,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

您可以在return闭包内使用forEach,但它不会中断循环,只有返回当前的块通过。

var numbers = [ 1,2,3,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]

答案 1 :(得分:9)

该文件已经解释过。

sqrt

但你想尝试一下。

$scope.persons = [];

// Master Object
var masterPerson = {
    data: {
        firstname: "",
        lastname: ""
    }
};

// When doing the ng-click event. This will allow you to use some default data
$scope.addNewPerson = function(newPerson) {
    newPerson = angular.merge(angular.copy(masterPerson), newPerson);
    $scope.persons.push(newPerson);
};

答案 2 :(得分:4)

实际上,最好的方法是:

numbers.first { (number) -> Bool in
    return number % 2 == 0
}

如果您要唯一的第一个数字,请确定。据我从问题中了解到,这就是您需要“中断”的目的。

如果您需要所有数字,请使用:

numbers.filter { $0 % 2 == 0 }