我对 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
返回一个布尔值,因此您只需从函数返回该表达式的结果。