2016-11-12 56 views
1

我碰到這行代碼語法,==運算符時不在if語句中。

let shouldExpandWindow = self.itemsOffset + self.items.count == self.windowOffset + self.windowCount 

來到我不習慣看到==外面的if語句。我知道這是爲了比較。但在這種情況下它將如何工作。謝謝

+2

比較的結果(無論是'真'或'FALSE')被分配給變量'shouldExpandWindow ''有'Bool'類型。 – vacawama

+0

Ohhhhhhh,好吧,這很有道理。謝謝 – Ryan

+0

'if'與任何'Bool'一起使用。 '=='恰好返回一個'Bool',你經常會看到它被用作if語句的謂詞。但是你可以使用任何其他'Bool'值,例如'if true {/ * ... * /}',如果someBoolFunction(){/ * ... * /}',如果x <5 { * ... * /}'等。 – Alexander

回答

1

==是一個函數,它帶有兩個相同類型的值(如Int)並返回Bool。例如,如果要比較兩個Int s時,函數簽名是:然後

func ==(lhs: Int, rhs: Int) -> Bool 

比較的結果被分配給哪個shouldExpandWindow夫特推斷爲具有類型Bool

您可以通過選項發現這爲自己-clicking上==

enter image description here