相关疑难解决方法(0)

Ruby类类型和case语句

有什么区别

case item.class
when MyClass
  # do something here
when Array
  # do something different here
when String
  # do a third thing
end
Run Code Online (Sandbox Code Playgroud)

case item.class
when MyClass.class
  # do something here
when Array.class
  # do something different here
when String.class
  # do a third thing
end
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这些中的第一个有时会起作用而第二个起作用,而其他时候,第二个起作用,而第一个起作用.为什么?哪一个是"正确"的方式呢?

ruby duck-typing case-statement

127
推荐指数
4
解决办法
4万
查看次数

"==="运算符在Ruby中做了什么?

可能重复:
在Ruby中=== vs. ==

我看到它最近使用了几次但却无法弄清楚它的作用.谁能说明它是如何工作的?

ruby

109
推荐指数
2
解决办法
5万
查看次数

在Ruby中=== vs. ==

在Ruby中,==和===之间有什么区别?该RDoc的

Case Equality - 对于Object类,实际上与调用#==相同,但通常由后代重写以在case语句中提供有意义的语义.

#==一样的==吗?你能举例说明在case语句中何时/如何使用它?

ruby

68
推荐指数
3
解决办法
2万
查看次数

string.match(regex)vs regex.match(string)

Ruby中的string.match(regex)和regex.match(string)有什么区别?在这种语言中使用这两种结构的理由是什么?

ruby regex

7
推荐指数
1
解决办法
326
查看次数

整数=== 3如何工作?

据我所知,===操作员测试RHS对象是否是LHS对象的成员.那讲得通.但是这在Ruby中是如何工作的?我正在看Ruby文档,我只看到===定义Object,我自己也看不到它Integer.它没有记录吗?

ruby

4
推荐指数
1
解决办法
680
查看次数

使用case/when检查某个类是否属于某个类

为什么我会"大拇指"?

p = Post.new  

case p.class
when Post
  "Thumbs up"
else
  "Thumbs down"
end
Run Code Online (Sandbox Code Playgroud)

ruby

2
推荐指数
1
解决办法
49
查看次数

使用`===`(包含运算符)比较类

这事实上TypeOfClass === TypeOfClassfalse给我的印象是反直觉.在以下代码中,即使field.class是同一个类,它的计算结果为false:

case field.class
when Fixnum, Float
  field + other_field
when Date, DateTime, Time
  field
else
  puts 'WAT?'
end
Run Code Online (Sandbox Code Playgroud)

我这样做了:

Fixnum === Fixnum # => false
Class === Class   # => true
Run Code Online (Sandbox Code Playgroud)

我发现另一个线程:

Integer === 3 # => true
Fixnum === 3  # => true
3.class       # => Fixnum
Run Code Online (Sandbox Code Playgroud)

我找不到这种语言设计的原因.语言设计师在这种行为中思考的是什么?

我认为这与另一个帖子中提供的答案有关.假设Numeric === Integera Integer是一种更具体的类型,这并不是不自然的Numeric.但是,它不是:

Numeric === Integer #=> false
Run Code Online (Sandbox Code Playgroud)

我认为case陈述或 …

ruby types class switch-statement comparison-operators

1
推荐指数
1
解决办法
266
查看次数