尝试 print() 返回一个 bool

问题描述 投票:0回答:1

我正在学习 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 一样爱对方。”

提前致谢。

swift printing boolean return
1个回答
0
投票

您的问题来自

Bool().self
。让我分解一下:

  • Bool
    本身就是布尔类型。
  • Bool()
    正在调用
    Bool
    上的初始化程序来创建一个新的
    Bool
    实例。
    • 这是
      Bool.init()
    • 的简写
    • 结果总是
      false
      。所以
      Bool()
      等价于
      false
      ,同样
      Int()
      等价于
      0
  • Bool().self
    正在访问该
    self
    false
    属性。
    self
    是一个总是返回它调用的东西的属性。

所以

Bool().self
always
false
.

仔细阅读字里行间,我认为这就是您要寻找的是拥有一个布尔值来说明一个主题是否“可爱”。从打印的信息来看,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()
© www.soinside.com 2019 - 2024. All rights reserved.