gpt4 book ai didi

oop - 默认情况下,私有(private)属性是否被 .perl 和 .gist 隐藏

转载 作者:行者123 更新时间:2023-12-04 13:56:26 27 4
gpt4 key购买 nike

情况似乎是这样:

class Foo { has $!bar }; say Foo.new( :3bar ).perl # OUTPUT: «Foo.new␤» 

文档说 it's implementation dependent ,但我想知道这是否真的有意义。

最佳答案

.perl输出是正确的。 Foo.new( :3bar ) 不是 做你想做的事。如果添加 method bar() { $!bar } ,您会注意到私有(private)属性 $!bar做了不是 设置:

class Foo {
has $!bar;
method bar() { $!bar }
}
say Foo.new( :3bar ).bar; # (Any)
say Foo.new( :3bar ).perl; # Foo.new

命名参数 :3bar (又名 bar => 3 )被默默忽略,因为有 不公开名称为 bar 的属性.

如果你想让它提示这种情况,那么也许 https://modules.raku.org/dist/StrictNamedArguments是给你的东西。

关于oop - 默认情况下,私有(private)属性是否被 .perl 和 .gist 隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54886639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com