Ruby:是值列表中的字符串

发布于 2024-08-18 12:55:00 字数 154 浏览 1 评论 0原文

Ruby 新手问题:

我正在写:

if mystring == "valueA" or mystring == "ValueB" or mystring == "ValueC"

有没有更简洁的方法来做到这一点?

Newbie Ruby question:

I'm currently writing:

if mystring == "valueA" or mystring == "ValueB" or mystring == "ValueC"

is there a neater way of doing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

奶茶白久 2024-08-25 12:55:00

有两种方法:

正则表达式:

if mystring =~ /^value(A|B|C)$/ # Use /\Avalue(A|B|C)\Z/ here instead 
   # do something               # to escape new lines
end

或者,更明确地说,

if ['valueA', 'valueB', 'valueC'].include?(mystring)
   # do something
end

希望有帮助!

There are two ways:

RegEx:

if mystring =~ /^value(A|B|C)$/ # Use /\Avalue(A|B|C)\Z/ here instead 
   # do something               # to escape new lines
end

Or, more explicitly,

if ['valueA', 'valueB', 'valueC'].include?(mystring)
   # do something
end

Hope that helps!

只为一人 2024-08-25 12:55:00

怎么样

if %w(valueA valueB valueC).include?(mystring)
  # do something
end

How 'bout

if %w(valueA valueB valueC).include?(mystring)
  # do something
end
北城半夏 2024-08-25 12:55:00

假设您想将此功能扩展到其他匹配组,您还可以使用 case:

case mystring
when "valueA", "valueB", "valueC" then
 #do_something
when "value1", "value2", "value3" then
 #do_something else
else
 #do_a_third_thing
end

Presuming you'd want to extend this functionality with other match groups, you could also use case:

case mystring
when "valueA", "valueB", "valueC" then
 #do_something
when "value1", "value2", "value3" then
 #do_something else
else
 #do_a_third_thing
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文