2016-05-14 112 views
-1

爲什麼這個代碼提供錯誤(雨燕2.2):三元操作符

預計Expresion

在返回線

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

回答

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 
} 
4

有沒有必要在這裏使用三元運算 - x ? true : false是完全一樣x。我會寫:

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