【问题标题】:Variable inside a variablename?变量名中的变量?
【发布时间】:2019-10-02 02:30:40
【问题描述】:

我想检查 for 循环中的 4 个按钮中的每一个。但是,我不知道如何通过它们? :-/

if ('$button'.$i) 似乎是问题所在,但是如何正确写呢??

my $button1 = 0;
my $button2 = 123;
my $button3 = 0;
my $button4 = 0;

for (my $i=1; $i <= 4; $i++) {
   if ('$button'.$i) {
      print"Yes we found positive value!";
   }
  }

【问题讨论】:

    标签: perl


    【解决方案1】:

    你用 Perl 的数组类型写得对。

    my @button;
    $button[1] = 0;
    $button[2] = 123;
    $button[3] = 0;
    $button[4] = 0;
    
    for (my $i=1; $i <= 4; $i++) {
       if ($button[$i]) {
          print"Yes we found positive value!";
       }
    }
    

    可以使用变量来构造变量名并访问变量的值,但这几乎总是一个坏主意。

    【讨论】:

    【解决方案2】:
    my @buttons = (0, 123, 0, 0);
    foreach my $button (@buttons) {
        if ($button > 0) {
            # Do something
        }
        else {
            # Do something
        }
    }
    

    或者,

    my @buttons = (0, 123, 0, 0);
    for (my $i=0; $i<scalar @buttons; $i++) {
        if ($buttons[$i] > 0) {
            # Do something
        }
        else {
            # Do something
        }
    }
    

    或者,

    my @buttons = (0, 123, 0, 0);
    foreach (@buttons) {
        if ($_ > 0) {
            # Do something
        }
        else {
            # Do something
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      相关资源
      最近更新 更多