相关疑难解决方法(0)

Swift if语句 - 用逗号分隔的多个条件?

看一个Swift 示例:

if let sourceViewController = sender.sourceViewController as? MealViewController, meal = sourceViewController.meal {
    ...
}
Run Code Online (Sandbox Code Playgroud)

该文件指出:

...代码将视图控制器分配给本地常量sourceViewController,并检查sourceViewController上的meal属性是否为nil.

问题:当用逗号分隔时,Swift是否允许你在if语句中有多个条件(如本例中的逗号后面所示MealViewController)?

在文档中没有看到这个.

if-statement optional ios swift

27
推荐指数
2
解决办法
2万
查看次数

逗号分隔条件和使用双符号的条件之间有什么区别

我最近遇到过这种情况,使用if/let并了解它的功能归功于这篇文章.据我了解,在执行进程块之前需要满足这两个条件.我现在已经到了我在常规条件语句中看到它的地步:

if existingTextHasDecimalSeparator != nil, replacementTextHasDecimalSeparator != nil {
    return false
} else {
    return true
}
Run Code Online (Sandbox Code Playgroud)

完成上述操作与简单使用之间有什么区别&&

if existingTextHasDecimalSeparator != nil && replacementTextHasDecimalSeparator != nil {
    return false
} else {
    return true
}
Run Code Online (Sandbox Code Playgroud)

conditional swift

8
推荐指数
2
解决办法
2052
查看次数

Swift 有条件:“逗号”像“AND”吗?

我正在学习 Swift 教程,有一次,在逗号,分隔两个条件的情况下评估 if条件。这和AND操作员一样吗?如:

var a = 3
var b = 6

var c = 9
var d = 15

if a < b &&  d > c {
    print("yes")
}

if a < b,  d > c {
    print("yes")
}
Run Code Online (Sandbox Code Playgroud)

两种情况都返回yes

swift

5
推荐指数
0
解决办法
2413
查看次数

错误:在初始化所有成员之前,闭包捕获了“自我”错误

请看下面的代码:

class A {
    let a: String
    let b: String

    init(a: String, b: String) {
        self.a = a
        self.b = b
    }
}

class B: A {
    let c: Bool

    private let aExpectedValue = "a"
    private let bExpectedValue = "b"

    override init(a: String, b: String) {
        c = (a == aExpectedValue && b == bExpectedValue)
        super.init(a: a, b: b)
    }
}
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误B.init

错误

但是,如果我将其更改为c = (a == aExpectedValue)c = (b == bExpectedValue)然后正确编译。

有人知道为什么吗?

swift

4
推荐指数
1
解决办法
288
查看次数

标签 统计

swift ×4

conditional ×1

if-statement ×1

ios ×1

optional ×1