есть ли рубиновая строка "return if x"? - PullRequest
31 голосов
/ 25 марта 2011

есть куча мест, которые мне нужно добавить

if this_flag
  return
end

это можно сделать в одной строке с рубином?

Ответы [ 4 ]

90 голосов
/ 25 марта 2011

есть ли рубиновая строка «return if x»?

Да

return if x

Я люблю Руби: -)

7 голосов
/ 25 марта 2011

Ruby всегда возвращает последнее ... Почему бы просто не структурировать ваш код по-другому?

def returner(test)    
  "success" if test   
end

Все, что вы сделали последним, вернется. Я люблю Руби.

7 голосов
/ 25 марта 2011

Некоторые дополнения к хорошему ответу Йорга В. Миттага:

x && return
x and return
if x then return end

На самом деле я не рекомендую первые две формы: однако все приведенные выше примеры являются действительными.Лично я предпочитаю избегать return в целом - большинство грамматических конструкций в Ruby являются пригодными для использования выражениями.

Счастливое кодирование.

1 голос
/ 28 февраля 2016

Создать метод, который проверяет ожидаемые типы классов Пример ниже. Метод check_class вернет true, как только найдет правильный класс. Полезно, если вам по каким-либо причинам может понадобиться увеличить количество типов классов.

def check_class(x)
  return true if is_string(x) 
  return true if is_integer(x)
  # etc etc for possible class types
  return false # Otherwise return false
end

def is_string(y)
  y.is_a? String
end

def is_integer(z)
  z.is_a? Integer
end


a = "string"
puts "#{check_class(a)}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...