【问题标题】:Perl : what is my ($self, $firstName)Perl : 我的 ($self, $firstName) 是什么
【发布时间】:2016-04-25 15:23:36
【问题描述】:

我是 Perl 语言的新手。

谁能解释一下下面的子程序,my ($self, $firstName)$self->{_firstName}有什么区别,如果你能用Java联系起来解释一下会很有帮助:

sub setFirstName {
    my ( $self, $firstName ) = @_;
    $self->{_firstName} = $firstName if defined($firstName);
    return $self->{_firstName};
}

【问题讨论】:

  • $selfthis,但 perl 不像 java 需要显式赋值。

标签: perl


【解决方案1】:

这是定义访问器的常用方法(同时是 getter 和 setter)。它的名字有点误导,因为它不仅仅是一个二传手。

它对应于类似的东西

class Whatever {

    private String firstName;

    public String setFirstName (String newName) {
        firstName = newName;
        return firstName;
    }

    public String setFirstName () {
        return firstName;
    }

}

要设置名字,请使用

$object->setFirstName("name");

要得到它,不要使用任何参数:

my $name = $object->setFirstName;

【讨论】:

    【解决方案2】:

    my ( $self, $firstName ) = 定义了两个变量,并从赋值运算符右侧的 list 中为它们赋值。

    $self->{_firstName} =$self 的值视为 hashref,并为其引用的散列的 _firstName 键分配一个值。

    【讨论】:

    • 这可能有助于解释setFirstName 是一个方法,$self 是调用该方法的对象。
    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2011-05-11
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多