使用 Swift 进行应用开发 - 第 13 课 - 练习:"isBelow13"




我对 Swift 很陌生,我通过使用"App Development with Swift"一书来学习。
您能否检查下面的代码 - 它不起作用,我不知道为什么。

import UIKit
func isBelow13(number: Int) -> Bool {
let isBelow: Bool = false
    if number < 13 {
        let isBelow = true
    } else {
        let isBelow = false
    }
    return isBelow
}
isBelow13(number: 11) // returns false, should return true
isBelow13(number: 14) // returns false


再见!

你首先将isBelow定义为false,然后在if语句中定义一个名为isBelow的新常量。这个新常量与上面的常量同名,但实际上完全不同。当您在 if 语句之外时,您在 if 语句中创建的语句不再存在,它只返回您最初创建的语句。您实际上根本没有更改最初设置的第一个是以下。

您实际尝试做的事情可以像这样完成:

func isBelow13(number: Int) -> Bool {
    var isBelow: Bool = false
    if number < 13 {
        isBelow = true
    } else {
        isBelow = false
    }
    return isBelow
}
isBelow13(number: 11) // returns true
isBelow13(number: 14) // returns false

通过这种方式,您将创建一个可以重新分配"var"而不是"let"的变量,然后根据 if 语句条件更改该变量的值。然后返回更改的值。有意义?

上述相同代码的更简洁版本如下所示:(来自注释中的@MartinR(

func isBelow13(number: Int) -> Bool {
    return number < 13
}

表达式number < 13返回一个布尔值,因此您只需从函数返回该表达式的结果。

最新更新