Ruby删除Case语句中的隐式break? (如何制作像Switch这样的案例)
发布时间:2020-12-17 04:00:08 所属栏目:百科 来源:网络整理
导读:x='bob'case xwhen "bob"puts 'it stops here'when 'bob'puts 'but i want it to stop here'end 反正是否使案例陈述表现得像香草开关?那么它会在爆发之前循环通过所有“何时”?令我惊讶的是,ruby的表现几乎与elsif相同. 解决方法 迈克尔, 虽然你的例子有点
x='bob' case x when "bob" puts 'it stops here' when 'bob' puts 'but i want it to stop here' end 反正是否使案例陈述表现得像香草开关?那么它会在爆发之前循环通过所有“何时”?令我惊讶的是,ruby的表现几乎与elsif相同. 解决方法
迈克尔,
虽然你的例子有点误导(‘bob’匹配’bob’和’bob’所以第一种情况总是匹配),你可以使用简单的if,如下面的if_test方法: def case_test(x) puts case when x > 3 "ct: #{x} is over 3" when x > 4 "ct: #{x} is over 4" end end case_test(4) case_test(5) def if_test(x) puts "it: #{x} is over 3" if x > 3 puts "it: #{x} is over 4" if x > 4 end if_test(4) if_test(5) 这会产生: ct: 4 is over 3 ct: 5 is over 3 it: 4 is over 3 it: 5 is over 3 it: 5 is over 4 请注意,您还可以使用when的多个语句,这可能会对您有所帮助,具体取决于您的实际用例: def many(x) case x when 'alice','bob' puts "I know #{x}" else· puts "I don't know #{x}" end end many('alice') many('bob') many('eve') 收益率: I know alice I know bob I don't know eve (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |