sub _init在Perl解释中

sub _init在Perl解释中,第1张

概述我想知道这个子程序在Perl中做了什么.我相信我有一般的想法,但我想知道一些语法. sub _init { my $self = shift; if (@_) { my %extra = @_; @$self{keys %extra} = values %extra; }} 这就是我认为它的作用:基本上将任何“额外”键值对添加到由变量$self引用的无名哈希中.此外 我想知道这个子程序在Perl中做了什么.我相信我有一般的想法,但我想知道一些语法.

sub _init {  my $self = shift;  if (@_) {    my %extra = @_;    @$self{keys %extra} = values %extra;  }}

这就是我认为它的作用:基本上将任何“额外”键值对添加到由变量$self引用的无名哈希中.此外,我不是100%肯定这一点,但我认为我的$self = shift实际上是指调用_init()子程序的变量$self.

我的具体问题是:

> $self实际上是指调用子例程_init()的变量吗?
>写$@ self {keys%extra} = values%extra时@ $语法是什么意思?

解决方法 你的理解是正确的.这允许类的用户将他们想要的任何参数设置到对象中.

>是的.如果你打电话,例如$myobject-> _init(‘color’,’green’),那么这段代码将设置$myobject-> {‘color’} =’green’.
>这是一个有点混乱的哈希 *** 作. keys%extra是一个列表(显然是键).我们在这里有效地使用“哈希切片”.可以把它想象成一个数组切片,你可以调用@ $arrayref [1,3,4].我们在这里使用@符号,因为我们正在讨论一个列表 – 它是与$self引用的哈希中的键列表%extra相对应的值列表.

另一种写这个的方法是:

foreach my $key (keys %extra) {  $self->{$key} = $extra{$key};}
总结

以上是内存溢出为你收集整理的sub _init在Perl解释中全部内容,希望文章能够帮你解决sub _init在Perl解释中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1260509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存