Perl 5.8级联空检查
发布时间:2020-12-16 06:15:49 所属栏目:大数据 来源:网络整理
导读:假设我有以下Groovy代码: String name = child.getParent()?.getParent()?.getName(); 请注意,getParent()可能返回null,在这种情况下,代码将继续工作,而不会抛出空指针异常. 有没有办法在Perl 5.8的一行中清楚地做到这一点?我愿意编写一个通用的帮助方法来
假设我有以下Groovy代码:
String name = child.getParent()?.getParent()?.getName(); 请注意,getParent()可能返回null,在这种情况下,代码将继续工作,而不会抛出空指针异常. 有没有办法在Perl 5.8的一行中清楚地做到这一点?我愿意编写一个通用的帮助方法来实现这一目标. 我遇到了几个嵌套对象的情况,我不得不这样做: my $name = $child && $child->getParent && $child->getParent->getParent && $child->getParent->getParent->getName; 是的,这是一行,但是很难看的IMO. 解决方法
在我看来,无论如何,你的原始Groovy代码都处于可读性的边界.我会以不同的方式实现它,但Perl中的类似表达式将是
my $name = ( $node = $node->get_parent or $node = $node->get_parent or $node->get_name ); 语言的效用不是由它用很少的字符表示复杂结构的能力来定义的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |