Swift Error中的三元运算符

时间:2016-05-14 02:26:40

标签: swift

为什么这段代码会出错(Swift 2.2):

  

预期的表现

在返回行

@staticmethod
def get_image(obj):
    try:
        return obj.images.filter(order=0)[0].filename
    except IndexError:
        return None

2 个答案:

答案 0 :(得分:4)

此处无需使用三元运算符 - x ? true : falsex完全相同。我写道:

func ==(lhs: Employee, rhs: Employee) -> Bool {
    return lhs.empName == rhs.empName && lhs.empCode == rhs.empCode
}

答案 1 :(得分:2)

傻。被检查的BOOL?

之间必须有空格

所以flag?expressionA:expressionB无法工作。 而flag ?expressionA:expressionB将起作用。

也许编译器将flag?视为可选链接。

这有效

func == (lhs: Employee, rhs: Employee) -> Int {
    return (lhs.empName == rhs.empName && lhs.empCode == rhs.empCode) ?1:0
}