gpt4 book ai didi

ruby-on-rails - rails : Difference between 'in?' and 'include?' in Rails

转载 作者:行者123 更新时间:2023-12-03 15:59:51 25 4
gpt4 key购买 nike

我正在浏览 Rails 的 ActiveSupport 扩展,但遇到了“in?”方法。对我来说,它的外观和工作方式与“包含?”完全一样。方法,但正好相反。

([1..5]).include? 1
1.in? ([1..5])

我一直在使用“包括?”方法自从我第一次开始使用 Rails 以来,所以有趣的是还有另一种方法可以做完全相同的事情。我缺少的两种方法有什么区别吗?

编辑

是否有使用“in”的场景?会比使用“包含”受益更多吗? ?因为现在,我能想到的就是“在?”给出'include'是一种相当无意义的方法吗?已经为它的目的而存在。

最佳答案

在?方法在 Rails 3.1 之后可用。那么如果你想用在呢?方法,我们需要标记 require 'active_support' 那么我们可以使用 in?方法。

但包括?方法可用于所有枚举。就像在普通的 ruby​​ 控制台中一样,您可以尝试:

From irb: 
(1..5).include? 1 #you are checking for include? on a range.
=> true
(1..5).to_a.include? 1 # you are checking on an Array.
=> true
2.1.5 :023 > 1.in?(1..5)
NoMethodError: undefined method `in?' for 1:Fixnum

从 rails 控制台:
1.in?(1..5)
=> true
(1..5).include? 1
=> true

检查它们的性能:
 require 'benchmark'
=> false
puts Benchmark.measure { 90000.in?(1..99000)}
0.000000 0.000000 0.000000 (0.000014)
puts Benchmark.measure { (1..99000).include? 90000 }
0.000000 0.000000 0.000000 ( 0.000007)

你可以看到,包括?比 in 快吗?

关于ruby-on-rails - rails : Difference between 'in?' and 'include?' in Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28272550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com