ruby - 2 if语句中的条件

标签 ruby

我正在尝试检测电子邮件地址是否不是两个域之一,但我在使用 ruby​​ 语法时遇到了一些问题。我目前有这个:

if ( !email_address.end_with?("@domain1.com") or !email_address.end_with?("@domain2.com"))
  #Do Something
end

这是条件的正确语法吗?

最佳答案

这里不是 or,而是逻辑 &&(和),因为您正试图找到匹配 两者 的字符串。

if ( !email_address.end_with?("@domain1.com") && !email_address.end_with?("@domain2.com"))
  #Do Something
end

通过使用,如果任一条件为真,则整个条件仍然为假。

请注意,我使用的是 && 而不是 and,因为它具有更高的优先级。详情为well outlined here

来自评论:

您可以使用 unless 和逻辑或 || 构建等效条件

unless email_address.end_with?("@domain1.com") || email_address.end_with?("@domain2.com")

这可能更容易阅读,因为 || 的两边都不必用 ! 取反。

关于ruby - 2 if语句中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418283/

相关文章:

ruby - 乘客_base_uri 不适用于乘客 4.0.0rc4

Ruby Regex,获取所有可能的匹配项(不截断字符串)

ruby - 尽管安装了 gem 但找不到 gem

Ruby IO.popen 带有 "-",幕后发生了什么?

ruby - Capistrano 部署错误 : Stage not set

ruby - Minitest 中 RSpecs instance_double 的对应物是什么?

Ruby 和 RVM 版本显示不正确

java - 在Java Android应用程序中获取ruby环境变量DATABASE_URL

ruby - 在 Ruby-watir 中通过 Excel 表传递值

c# - 从引用的回复中解析电子邮件内容