Можете ли вы использовать `include?` В выражениях больше чем? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь выяснить, содержит ли строка более двух вхождений определенного символа.Например,

is_valid_email("joey@g@mail.com")

должен возвращать false, если имеется более двух "@" или ".".Могу ли я использовать что-то вроде этого?

if string.include?("@") > 2
  return false
else
  return true
end

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете использовать String#count.Кроме того, нет смысла в выражении if, которое просто возвращает true или false;само логическое условие уже true или false, поэтому вы можете просто вернуть его напрямую.В этом случае, поскольку часть if возвращает false, а else возвращает true, вы можете отменить условие:

return !(string.count('@') >= 2)

Или использовать противоположное условие:

return string.count('@') < 2

Но если вы проверяете, что строка выглядит как адрес электронной почты, кажется, что вы хотите убедиться, что она содержит ровно один "@":

return string.count('@') == 1

Вы можете оставить return ключевое слово отключено, если после этой проверки в теле метода нет дополнительного кода;метод автоматически возвращает значение своего последнего выражения.

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