首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ruby如何在" ==“后面的括号中使用”x==“(或-等于)运算符来匹配多个表达式,即x== (5欧元/ 6)

ruby如何在" ==“后面的括号中使用”x==“(或-等于)运算符来匹配多个表达式,即x== (5欧元/ 6)
EN

Stack Overflow用户
提问于 2013-11-08 16:46:53
回答 4查看 431关注 0票数 0

我试图让==操作符匹配两个可能的值,如下所示。

代码语言:javascript
复制
def demo(x)
  puts "foo!" if x == (5 || 7)
end

demo(5)
#=> "foo!"
demo(7)
#=> nil

所以这不起作用,但是有没有办法匹配ruby中==操作符末尾的多个值呢?我想我以前见过,所以我试过,但我不确定。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-08 16:49:23

如下所示:

代码语言:javascript
复制
def demo(x)
  puts "foo!" if x == 5 || x == 7
end

x == (5 || 7)不能工作,因为5 || 75,所以它与x == 5相同。

票数 3
EN

Stack Overflow用户

发布于 2013-11-08 16:49:05

这里有一些选择

代码语言:javascript
复制
... if x == 5 || x == 7
... if [5, 7].include?(x)
... if x.in?(5, 7) # if in rails
票数 2
EN

Stack Overflow用户

发布于 2013-11-08 17:00:38

回答你的问题:不,不可能:http://phrogz.net/programmingruby/language.html

比较算子 Ruby语法定义了比较运算符==,===,<=>,<,<=,>,>=,=~,以及标准方法eql?和平等吗?(见表7.1)。所有这些操作符都是作为方法实现的。虽然具有直观的意义,但要由实现它们的类来产生有意义的比较语义。库引用描述内置类的比较语义。该模块提供了对实现操作符==、<、<=、>、>=和方法的支持?就<=>而言。在case表达式中使用操作符===,在“Case表达式”一节中对其进行了描述。

所以这是一个只有一个参数的方法。除非,x是false,否则(x||y)总是返回x。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19864316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档