For Loop in Apple Swift

前端 未结 5 2044
眼角桃花
眼角桃花 2021-02-14 03:24

Apple\'s newly released language Swift has an example on the official documentation. Example is like this;

let interestingNumbers = [
    \"Prime\": [2, 3, 5, 7,         


        
5条回答
  •  庸人自扰
    2021-02-14 03:44

    Swift allows you to loop over a dictionary with tuple-syntax (key, value). So in every iteration of the for-loop Swift cares about reassigning the specified tuple-variables (kind and number in your case) to the actual dictionary-record.

    To figure out which Key includes the highest number in your example you can extend your code as follows:

    let interestingNumbers = [
        "Prime": [2, 3, 5, 7, 11, 13],
        "Fibonacci": [1, 1, 2, 3, 5, 8],
        "Square": [1, 4, 9, 16, 25],
    ]
    
    var largest = 0
    var largestKey = ""
    for (kind, numbers) in interestingNumbers {
        for number in numbers {
            if number > largest {
                largest = number
                largestKey = kind
            }
        }
    }
    largest     // =25
    largestKey  // ="Square"
    

    Or if you want to practice the tuple-syntax try that (with the same result):

    var largest = 0
    var largestKey = ""
    for (kind, numbers) in interestingNumbers {
        for number in numbers {
            if number > largest {
                (largestKey, largest) = (kind, number)
            }
        }
    }
    largest     // =25
    largestKey  // ="Square"
    

提交回复
热议问题