Подтвердить что ты не робот

Есть ли рубиновая однострочная "return if x"?

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

if this_flag
  return
end

может быть сделано в одной строке с ruby?

4b9b3361

Ответ 1

есть ли одна рубиновая "return if x"?

Да:

return if x

Я люблю Ruby: -)

Ответ 2

Некоторые дополнения к Jörg W Mittag хороший ответ:

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

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

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

Ответ 3

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

def returner(test)    
  "success" if test   
end

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

Ответ 4

Создайте метод проверки ожидаемых типов классов Пример ниже. Метод 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)}"