|| оператор такой же, как = оператор? - PullRequest
0 голосов
/ 18 декабря 2010

Я видел этот отрывок в книге по программированию agile rails:

module StoreHelper 
def page_title 
@page_title || "Pragmatic Store" 
end 
end 

Могу ли я изменить || к =?

Ответы [ 2 ]

4 голосов
/ 18 декабря 2010

номер

Это означает, что page_title вернет @page_title, если не ноль, ИЛИ "Pragmatic Store", если @page_title равно нулю. (ноль ноль)

2 голосов
/ 18 декабря 2010

Более длинный ответ: вы наткнулись на стиль программирования, который популярен, потому что он очень лаконичен, но все же прост для понимания. Это быстрый способ написать:

if ! @page_title.nil?
  return @page_title
else
  return "Pragmatic Store"
end

Так что одна строка с логическим или исключает необходимость в if / then. Это происходит потому, что || оценивается: слева направо, останавливаясь на первом элементе, который не является ложным. В найденном вами примере также пропущено ключевое слово return , поскольку здесь это явно не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...