【问题标题】:Throwaway variables in multiple assignment [duplicate]多重赋值中的一次性变量[重复]
【发布时间】:2014-05-29 01:53:29
【问题描述】:

假设我有一个函数foo,它返回一个固定长度的列表,我将返回的列表分配给几个变量,如下所示:

($duck, $lemonade, $stand, $grapes) = foo($waddle);

但事实证明我实际上并不想要$lemonade。我可以用下划线替换它来表示我不需要该值(它在其他一些编程语言中用于此目的),但由于它在 Perl 中具有隐含的特殊含义,我认为它可能不会令人困惑彻底坏了。

Perl 是否对这种“一次性”变量有约定,或者是否有更 Perly(perlish?)的方式来做到这一点?或者更确切地说,鉴于这是 Perl,还有哪些其他方法?

【问题讨论】:

标签: perl


【解决方案1】:

你可以做这样的事情来明确你要丢弃哪些值:

use strict;
use warnings;

sub foo {
    return ( 1..4 );
}

my ( $one, undef, $three, undef ) = foo();

print "$one $three\n"; # prints "1 3"

【讨论】:

  • 实际上不需要第二个 undef
  • 对,但它确实表明你没有不小心忽略它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
  • 2013-09-13
  • 2017-06-20
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多