2016-11-12 5 views
1

я наткнулся на эту строку кодасинтаксис, == оператор, если нет в инструкции if.

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

Я не привык видеть == снаружи, если заявление. Я знаю, что это предназначено для сравнений. Но как это будет работать в этом случае. Спасибо

+2

Результат сравнения (или '' true' или false') присваивается переменной 'shouldExpandWindow 'который имеет тип' Bool'. – vacawama

+0

Ohhhhhhh, хорошо, что имеет большой смысл. Спасибо – Ryan

+0

'if' работает с любым' Bool'. '==' происходит с возвратом 'Bool', и вы часто увидите, что он используется как предикат' if'. Но вы можете использовать любое другое значение «Bool», например 'if true {/ * ... * /}', 'if someBoolFunction() {/ * ... * /}', 'if x <5 {/ * ... * /} 'и т. д. – Alexander

ответ

1

== - это функция, которая принимает два значения одного типа (например, Int) и возвращает Bool. Например, если вы сравниваете две Int с, функция подписи:

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

Результат сравнения затем присваивается shouldExpandWindow который Swift выводит иметь тип Bool.

Вы можете найти это для себя, вариант на == щелчок:

enter image description here

Смежные вопросы