2016-11-12 109 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