为什么这段代码会出错(Swift 2.2):
预期的表现
在返回行
@staticmethod
def get_image(obj):
try:
return obj.images.filter(order=0)[0].filename
except IndexError:
return None
答案 0 :(得分:4)
此处无需使用三元运算符 - x ? true : false
与x
完全相同。我写道:
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
}