1
2824
Ruby使用
Ruby比较
这使得复杂的
不像
|
2
463
该运算符可以按预期处理文字,但不能处理类:
将打印“它不是字符串或数字”。
|
3
231
它是使用
引用:
另一个例子:
(第一版,O'Reilly)在我的Kindle上,上面写着
|
4
111
什么时候添加更多示例到 Chuck's answer : 带参数:
无参数:
请注意“ How to write a switch statement in Ruby “kikito对此提出了警告。 |
5
80
在Ruby 2.0中,还可以在中使用lambdas
您还可以使用带有自定义参数的结构轻松创建自己的比较器
(示例取自“ Can procs be used with case statements in Ruby 2.0? ".) 或者,对于完整的类:
(示例取自“ How A Ruby Case Statement Works And What You Can Do With It ".) |
6
79
许多编程语言,特别是从C派生的编程语言,都支持所谓的 Switch Fallthrough . 我正在寻找在Ruby中实现这一点的最佳方法,并认为它可能对其他人有用: 在类C语言中,故障通常如下所示:
在Ruby中,同样可以通过以下方式实现:
这不是严格等同的,因为不可能让
|
7
53
您可以使用正则表达式,例如查找字符串类型:
鲁比的
|
8
37
它叫
现在,我们来看一看:
事实证明,您还可以将任意的if/else链(即,即使测试不涉及公共变量)替换为
|
9
33
所以,在一个
见“ How A Ruby Case Statement Works And What You Can Do With It ". |
10
25
Ruby使用
按照
例子:
较短版本:
作为"
Ruby's case statement - advanced techniques
”鲁比说
可用于 Ranges
可用于 Regex :
可用于 Procs and Lambdas :
此外,还可以与您自己的匹配类一起使用:
|
11
22
根据您的情况,您可能更喜欢使用散列方法。
如果有一长串的
|
12
21
自从
|
13
20
regular expression 解决方案如下:
|
14
14
你可以写
或:
|
15
11
|
16
9
有很多很好的答案,但我想我会添加一个因素。。如果您试图比较对象(类),请确保您有一个太空船方法(不是玩笑)或了解它们是如何进行比较的 " Ruby Equality And Object Comparison “这是一个很好的话题讨论。 |
17
8
以下是有关该操作员的其他信息:
大小写相等运算符:
Ruby的许多内置类,如String、Range和Regexp,都提供了自己的
同样的结果也可以通过其他可能最适合该工作的方法实现,例如
实施范围
当
记住
的Regexp实现
|
18
5
|
19
4
我已经开始使用:
在某些情况下,它有助于压缩代码。 |
20
4
|
21
3
强调逗号很重要(
你可能会认为,执行 和 ,您可以执行以下操作,但它不起作用:
它不起作用,因为
|
22
3
您的环境中不支持正则表达式吗?例如。 Shopify Script Editor (2018年4月):
一种解决方法,它遵循前面在中介绍的方法组合 here 和 here :
如果您仍然喜欢使用
|
23
1
我们可以为多种情况编写switch语句。 例如
|
24
1
这个
这是的语法
这是的语法
例如:
有关更多信息,请参阅
|
25
1
|
26
0
我更喜欢使用case+而不是
|
27
0
Ruby支持case表达式。 类别匹配:
多值匹配:
|
ZenBa2 · getopt未更改值C 2 年前 |
Waeez · 条件未满足php仍在运行 6 年前 |
Catz · 正在尝试打印正确数量的“*”以代替数值 6 年前 |
privilegedMale · switch语句中的扫描仪问题 6 年前 |
rasilvap · 具有多个参数的开关箱 6 年前 |
RudziankoÅ · 不可能的类型切换情况:不能有动态类型 6 年前 |
Leo Thomas · 循环case语句而不退出shell脚本 6 年前 |