相关疑难解决方法(0)

检查Ruby中的数组中是否存在值

我有一个值'Dog'和一个数组['Cat', 'Dog', 'Bird'].

如何在没有循环的情况下检查数组中是否存在?是否有一种简单的方法来检查值是否存在,仅此而已?

ruby arrays

1258
推荐指数
16
解决办法
82万
查看次数

红宝石中有没有像object.in(array)这样的东西?

所以写这个的标准方法似乎是array.include?(object)。但是,与object.in(array)相比,我发现很难快速阅读和理解。红宝石中有这样的东西吗?

我刚刚再次遇到的示例是(user_role是一个字符串,而allowed_user_roles是一个字符串数组):

allowed_user_roles.include?(user_role)
Run Code Online (Sandbox Code Playgroud)

我知道它可能是个人喜好,但是我发现它很容易阅读和理解。

user_role.in(allowed_user_roles)
Run Code Online (Sandbox Code Playgroud)

ruby arrays

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

为什么它是"array.include?object"而不是"object.in?array"?

我最近发现在Python中你可以这样做:

array = [1, 2, 3, 4]
if 3 in array:
  print("Yep!")
Run Code Online (Sandbox Code Playgroud)

然后,我心想:"嗯,为什么它在Ruby中有所不同?if 3 in array比它更具可读性if array.include? 3." 然后,我意识到,Ruby是纯OOP,这种方法是基于关键字的.

但是,我仍然在想.如果Python方法不是OOP,为什么Ruby中没有其他更短的方式可读性更强?在思考时,我不认为"此列表是否包含该元素?",但"该元素是否在该列表中?".

我们假设,以下代码是可能的:

array = [1, 2, 3, 4]

if 3.in? array
  print "Yep!
end
Run Code Online (Sandbox Code Playgroud)

我看到它是从一个掉头list.method(element)element.method(list).所以,我想知道:哪些红宝石原则/规则反对上面提到的代码?

编辑:糟糕,我写了"基于键盘",但当然意味着"基于关键字".要强调这一点:我不是在寻找行为类似于in的方法?方法; 我正在寻找它没有以这种方式在Ruby中实现的原因.

ruby python arrays coding-style

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

标签 统计

arrays ×3

ruby ×3

coding-style ×1

python ×1