我经常发现自己检查某些值是否属于某个集合.据我所知,人们通常使用Enumerable#member?为了这.
end_index = ['.', ','].member?(word[-1]) ? -3 : -2
Run Code Online (Sandbox Code Playgroud)
然而,这感觉不像Ruby中的大多数东西那么优雅.我宁愿把这段代码写成
end_index = word[-1].is_in?('.', ',') ? -3 : -2
Run Code Online (Sandbox Code Playgroud)
但我找不到这样的方法.它甚至存在吗?如果没有,任何想法为什么?
Vas*_*ich 17
不是在ruby中,而是在ActiveSupport中:
characters = ["Konata", "Kagami", "Tsukasa"]
"Konata".in?(characters) # => true
Run Code Online (Sandbox Code Playgroud)
und*_*gor 10
您可以沿着这条线轻松定义它:
class Object
def is_in? set
set.include? self
end
end
Run Code Online (Sandbox Code Playgroud)
然后用作
8.is_in? [0, 9, 15] # false
8.is_in? [0, 8, 15] # true
Run Code Online (Sandbox Code Playgroud)
或定义
class Object
def is_in? *set
set.include? self
end
end
Run Code Online (Sandbox Code Playgroud)
并用作
8.is_in?(0, 9, 15) # false
8.is_in?(0, 8, 15) # true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |