【发布时间】:2018-10-08 06:47:06
【问题描述】:
我正在编写一个如下所示的类:
class ListenSocket is Tap {
has $!VMIO;
has Promise $.socket-host;
has Promise $.socket-port;
method new(&on-close, Mu :$VMIO, Promise :$socket-host, Promise :$socket-port) {
self.bless: :&on-close, :$VMIO, :$socket-host, :$socket-port;
}
submethod BUILD(Mu :$!VMIO) { }
}
当我尝试使用为 $socket-host 和 $socket-port 定义的 Promises 构造类时,无论出于何种原因,它们在类中的属性最终都变得未定义。我该怎么做才能解决这个问题?
【问题讨论】:
-
可能是由于您拥有的空方法 BUILD 。
bless实际上调用它。如果您的定义如此简单,最好不要定义任何内容,或者将其留给 BUILD 而不是定义new -
如果您将
BUILD的名称更改为TWEAK,这可能会更好 -
因为
&on-close是Tap的私有成员,所以这些都不起作用
标签: raku