既然 Perl 开发人员已经决定某种程度地弃用 given/when 语句,除了回到 if/elsif/else 之外,是否有推荐的替代方法?
问问题
1576 次
2 回答
7
if
//链在大多数情况下是最好的选择——除非完全不同的东西比//和elsif
/都好,这实际上是相当常见的。“完全不同”的方法的示例是创建不同类型的对象来处理不同的场景,让方法分派为您完成工作,或者寻找机会让您的代码更加数据驱动。如果它们是合适的并且你做对了,这两者都可以大大减少代码中“switch 语句”结构的数量。else
if
elsif
else
given
when
于 2013-10-07T23:47:00.317 回答
0
作为补充,如果您有一些需要快速更新的给定/何时/默认代码,我发现“for”和 if/elsif/else 的组合很好。只需用&的级联替换和替换语句given
,for
然后替换为。这允许您的所有测试继续隐式使用,需要更少的重写。(但请注意,其他特殊的智能匹配功能将不再起作用。)when
if
elsif
default
else
$_
不过,这只是为了重写已经使用给定/何时的代码。对于编写新代码,@hobbs 有正确的答案。
于 2013-10-08T07:13:08.610 回答