我正在学习 Angela Yu 的 iOS Swift 课程。我在时间线上 5:10 上第 082 课。
这是我正在处理的代码示例:
func loveCalli() {
/** **ASSIGNMENT** SINGLE '=' SIGN */
let loveNumber = Int.random(in: 0...100)
/** **CHECKING** DOUBLE '==' SIGNS */
if loveNumber > 80 {
print(Bool().self, "; You'll love each other like Kanya loves Kanya.")
} else if loveNumber > 40 || loveNumber < 80 {
print(Bool().self, "; You go together like Coke and Mentos.")
} else {
print(Bool().self, "; You'll be forever alone.")
}
}
loveCalli()
是否可以将结果打印为
Bool!
?我要找的结果是:
如果随机数在80以上,我想打印:
“真的;你们会像 Kanya 爱 Kanya 一样彼此相爱。”
如果随机数低于80,我想打印:
“假的;你们会像 Kanya 爱 Kanya 一样爱对方。”
但即使数字超过 80,我也越来越
“假的;你们会像 Kanya 爱 Kanya 一样爱对方。”
提前致谢。
您的问题来自
Bool().self
。让我分解一下:
Bool
本身就是布尔类型。Bool()
正在调用 Bool
上的初始化程序来创建一个新的 Bool
实例。
Bool.init()
false
。所以Bool()
等价于false
,同样Int()
等价于0
。Bool().self
正在访问该 self
的 false
属性。 self
是一个总是返回它调用的东西的属性。所以
Bool().self
将alwaysfalse
.
仔细阅读字里行间,我认为这就是您要寻找的是拥有一个布尔值来说明一个主题是否“可爱”。从打印的信息来看,40以上(
80
以上就更可爱了),所以我加了一句:let isLoveable = 40 < loveNumber
这可能是这样的:
func loveCalli() {
/** **ASSIGNMENT** SINGLE '=' SIGN */
let loveNumber = Int.random(in: 0...100)
let isLoveable = 40 < loveNumber
/** **CHECKING** DOUBLE '==' SIGNS */
if loveNumber > 80 {
print(isLoveable, "; You'll love each other like Kanya loves Kanya.")
} else if isLoveable || loveNumber < 80 {
print(isLoveable, "; You go together like Coke and Mentos.")
} else {
print(isLoveable, "; You'll be forever alone.")
}
}
loveCalli()