首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过度使用//或必要的

过度使用//或必要的
EN

Stack Overflow用户
提问于 2014-10-08 14:56:26
回答 1查看 72关注 0票数 0

我遇到了以下遗留代码:

代码语言:javascript
复制
sub some_func {
    my $val = $ENV{some_key} // '';
    if ( length($val) ) {
        return $val;
    }

    return 0;
}

通常,我会认为这是复杂的,并将其改写为:

代码语言:javascript
复制
sub some_func {
    return $ENV{some_key} || 0;
}

但是写这篇文章的程序员相当不错。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-08 15:03:09

原件:

  • 空字符串⇒0(作为数字)
  • 字符串零⇒零(作为字符串)
  • 零号⇒零(作为一个数字)
  • 未定义的⇒零(作为一个数字)

其他一切都返回$ENV{some_key}

重写:

  • 空字符串⇒0(作为数字)
  • 字符串零⇒零(作为一个数字)
  • 零号⇒零(作为一个数字)
  • 未定义的⇒零(作为一个数字)

其他一切都返回$ENV{some_key}

因此,有一个小的差别,这并不重要,但它确实在某些情况下(例如encode_json)。不过,我认为差别是无意的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26260061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档