为什么我会得到不同的结果?
class Car {
has $.wheels;
}
my $my_car = Car.new( wheels => 4 );
say $my_car ; # Car.new(wheels => 4)
say "$my_car"; # Car<94582644384824>
put $my_car ; # Car<94582644384824>
Run Code Online (Sandbox Code Playgroud)
我想在第2和第3个案例中$my_car是字符串化的,但结果意味着什么?
Eli*_*sen 11
该say命令调用.gist其参数.该put命令调用.Str其参数.插入对象时也会发生这种情况.
默认gist方法查看对象的公共属性,并从中创建一个字符串.
您可以通过提供自己的Str方法来控制对象的字符串化方式.