Swiftui 如何理解Swift中的这种语法(a?b?c:d:c)

Swiftui 如何理解Swift中的这种语法(a?b?c:d:c),swiftui,optional,Swiftui,Optional,我在SwiftUI教程中得到以下代码,如何理解这一行?我知道其目的是将座椅颜色设置为强调色(蓝色),否则保留为默认灰色 但如何理解这种语法以及Swift中的术语呢 .foregroundColor(isSelectable?isSelected?accentColor:Color.gray.opacity(0.5):accentColor) 是嵌套的 不太熟悉swift,所以我不知道我的代码片段是否完全符合swift,但我们将其称为PSUDEO代码,以说明您的示例所做的工作: if a {

我在SwiftUI教程中得到以下代码,如何理解这一行?我知道其目的是将座椅颜色设置为强调色(蓝色),否则保留为默认灰色

但如何理解这种语法以及Swift中的术语呢

.foregroundColor(isSelectable?isSelected?accentColor:Color.gray.opacity(0.5):accentColor)

是嵌套的

不太熟悉swift,所以我不知道我的代码片段是否完全符合swift,但我们将其称为PSUDEO代码,以说明您的示例所做的工作:

if a {
    if b {
        c
    } else {
        d
    }
} else {
    c
}
是嵌套的

不太熟悉swift,所以我不知道我的代码片段是否完全符合swift,但我们将其称为PSUDEO代码,以说明您的示例所做的工作:

if a {
    if b {
        c
    } else {
        d
    }
} else {
    c
}

是的,用括号我现在可以理解了,它就像
a?(b?c:d):c
但嵌套。在此之前,缩短格式将我与两个
::
混淆,我不知道这叫什么,所以很难找到它。@ChuckZHB如果这个答案是正确的,请单击答案分数旁边的复选标记来标记它。这里的括号是多余的,如表达式a*(b*c)或a+(b+c)。换句话说,不存在其他解释这个表达式的方法。它是从左到右计算的。是的,用括号我现在可以理解它了,它就像
a?(b?c:d):c
但嵌套。在此之前,缩短格式将我与两个
::
混淆,我不知道这叫什么,所以很难找到它。@ChuckZHB如果这个答案是正确的,请单击答案分数旁边的复选标记来标记它。这里的括号是多余的,如表达式a*(b*c)或a+(b+c)。换句话说,不存在其他解释这个表达式的方法。它是从左到右计算的。