Ruby on rails 如何使用Ruby测试变量是否包含在整数列表中?

Ruby on rails 如何使用Ruby测试变量是否包含在整数列表中?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我想做一些类似于 if current_user.id in?(1,2,3,100,312) ..... ruby怎么可能做到这一点?谢谢,Ruby有一个包含函数。语法如下 [1,2,3].include?(2) Ruby有一个include函数。语法如下 [1,2,3].include?(2) 你要找的关键词是。但是,它的工作方式与您的工作方式相反。它需要是数组。包括?(你在找什么) 你要找的关键词是。但是,它的工作方式与您的工作方式相反。它需要是数组。包括?(你在找什么) 应该这样做

我想做一些类似于

if current_user.id in?(1,2,3,100,312)
 .....

ruby怎么可能做到这一点?谢谢,Ruby有一个包含函数。语法如下

[1,2,3].include?(2)

Ruby有一个include函数。语法如下

[1,2,3].include?(2)

你要找的关键词是。但是,它的工作方式与您的工作方式相反。它需要是
数组。包括?(你在找什么)


你要找的关键词是。但是,它的工作方式与您的工作方式相反。它需要是
数组。包括?(你在找什么)

应该这样做


应该可以了。

每个人都指出了
数组#包括?
。请注意,如果数组中有很多值,是否包括?可能是相对昂贵的O(n)操作。Ruby的查找集为O(1),因此如果速度是个问题:

require 'set'

SPECIAL_USER_IDS = Set[1,2,3,100,312]
...
if SPECIAL_USER_IDS.include? current_user.id

我单独初始化了集合,而不是内联为集合。new(array)本身就是一个O(n)操作。在微基准中,我发现,即使基数较低(一直到单个元素),集合的速度也会稍微快一些,而基数较高时,集合的速度会明显快一些。

每个人都指出
数组#include?
。请注意,如果数组中有很多值,是否包括?可能是相对昂贵的O(n)操作。Ruby的查找集为O(1),因此如果速度是个问题:

require 'set'

SPECIAL_USER_IDS = Set[1,2,3,100,312]
...
if SPECIAL_USER_IDS.include? current_user.id
我单独初始化了集合,而不是内联为集合。new(array)本身就是一个O(n)操作。在微基准中,我发现即使基数较低(一直到单个元素),集合的速度也会稍微快一些,而基数较高时,集合的速度会明显快一些