【问题标题】:Boolean value defined after evaluating the conditions declared in an 'array'在评估“数组”中声明的条件后定义的布尔值
【发布时间】:2018-01-07 15:28:39
【问题描述】:

如果我使用条件“数组”,是否可以定义布尔值?

(这是我想象的,但我不完全确定它是否可能或正确......我是 swift 的初学者)

简而言之:在评估一系列简单条件后,我希望变量“alpha”为真或假。我知道我可以使用“if”或“switch”来实现这一点,但我想知道是否有更简单的方法来做到这一点。 (我的灵感来自于我可以声明一个带有逗号分隔的多个条件的“if”)

案例 1:

var red = 2
var green = 3
var blue = 4

var alpha = red > 1; green > 2; blue > 3
// Can this be done?

// result: alpha is true

案例 2:

var red = 0
var green = 4
var blue = 2

var alpha = red > 1; green > 2; blue > 3

// result: alpha is false

在此逻辑下,如果每个条件都为“真”,则 alpha 为“真”,否则,alpha 为“假”


到目前为止我做了什么?:

我尝试在操场上对此进行测试,但它总是为 alpha 打印“真”。


欢迎以其他方式实现我想要的建议

谢谢你:)

【问题讨论】:

  • var alpha = red > 1 && green > 2 && blue > 3
  • 谢谢@vacawama

标签: swift boolean


【解决方案1】:

两种选择

  1. 正如 vacawana 使用 AND (&&) 运算符所建议的那样

    let alpha = red > 1 && green > 2 && blue > 3
    
  2. 使用if 表达式评估多个条件逗号分隔

    var alpha = false
    if red > 1, green > 2, blue > 3 { alpha = true } 
    

【讨论】:

  • (对于2' :))。可能值得一提的是,对于第二种选择,alpha 仍然可以保持不变; let 声明后跟条件分支都导致其实例化 (if .. { } else { })。例如。 let alpha: Bool; if red > 1, green > 2, blue > 3 { alpha = true } else { alpha = false }.
【解决方案2】:

使用分号; 将语句彼此分开,并且将它们作为单个语句进行评估。

你写的:

var alpha = red > 1; 
green > 2; 
blue > 3

所以它只检查red > 0 并忽略其他颜色值。
对其他条件进行评估,但没有分配任何内容。

为了评估所有条件,您必须使用逻辑 AND 将它们链接起来。

var alpha = red > 1 && green > 2 && blue > 3

【讨论】:

    猜你喜欢
    • 2015-05-23
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    相关资源
    最近更新 更多