【问题标题】:Curly braces for a hash哈希的花括号
【发布时间】:2012-09-02 19:09:33
【问题描述】:

在 Perl 中创建如下哪种结构?

my $self = { Name => $name, Color => $class->default_color };

如果是哈希,那么官方表示法不是以下(括号,% 而不是$):

my %self = ( Name => $name, Color => $class->default_color );

【问题讨论】:

标签: perl


【解决方案1】:

{ ... } 中的数据是一个哈希引用。

( ... ) 中的数据是一个列表,但是上下文使它变成了一个哈希。

【讨论】:

    【解决方案2】:

    嗯,它仍然是一个哈希 - 但一个匿名的。并将其引用分配给$selfThe doc 说:

    可以使用大括号创建对匿名哈希的引用:

    $hashref = {    
      'Adam'  => 'Eve',     
      'Clyde' => 'Bonnie',
    };
    

    【讨论】:

      【解决方案3】:

      Perl 没有散列的文字表示,因此我们创建一个散列作为键值对列表。匿名哈希构造函数或对命名哈希的赋值将键值对列表转换为哈希。

      第一行创建了一个哈希引用,您将其分配给一个标量变量:

      my $self = { Name => $name, Color => $class->default_color };
      

      最后一行将一个列表分配给一个命名的哈希:

      my %self = ( Name => $name, Color => $class->default_color );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-16
        • 2012-08-04
        • 2019-01-26
        • 2015-07-12
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        相关资源
        最近更新 更多