Perl'-&燃气轮机';奇怪的符号
在下面的上下文中,这个'->'是做什么的?我不知道它是什么意思。 这不是我们创建的对象,至少不是使用new的传统方式,我也不能想象'->'行是子程序调用的参数Perl'-&燃气轮机';奇怪的符号,perl,syntax,Perl,Syntax,在下面的上下文中,这个'->'是做什么的?我不知道它是什么意思。 这不是我们创建的对象,至少不是使用new的传统方式,我也不能想象'->'行是子程序调用的参数 my $Interface = SOAP::Lite -> uri("urn:iControl:$name") -> readable(1) -> proxy("https://$sHost/iControl/iControlPortal.cgi"); 在时不时地使用Perl几年之后,我们很高兴能够继续使用
my $Interface = SOAP::Lite
-> uri("urn:iControl:$name")
-> readable(1)
-> proxy("https://$sHost/iControl/iControlPortal.cgi");
在时不时地使用Perl几年之后,我们很高兴能够继续使用这种首次出现的语法
我很困惑
thx/赫尔曼
a
->b(...)
->c(...)
->d(...)
这只是一种更具可读性的写作方式
a->b(...)->c(...)->d(...)
这意味着
( ( a->b(...) )->c(...) )->d(...)
或
它只是一个方法调用链,其中一个方法返回一个对象作为下一个方法的发票人
Lite使用了一个常见的“技巧”,让setter返回属性已设置的对象,允许
my $obj = Class->new();
$obj->setter1(...);
$obj->setter2(...);
$obj->setter3(...);
写成
my $obj = Class->new()
->setter1(...)
->setter2(...)
->setter3(...);
它与
SOAP::Lite->uri(“urn:iControl:$name”)->(…)
相同,似乎每个方法调用都返回对象本身。因此我们在一个链中调用Lite模块的几个方法,对吗?这在perlref中有记录<代码> >代码>当你使用一个引用并想要访问它的内容或调用一个方法(我认为它和C++的对象指针一样的语法)。在Perl,<代码> NeX/Cuth>不是一个特殊的名字。对象构造函数可以命名为任何名称(尽管new
很常见)。在本例中,SOAP::Lite的构造函数方法是uri
。
my $obj = Class->new()
->setter1(...)
->setter2(...)
->setter3(...);