gpt4 book ai didi

date - Dateish 字符串的问题

转载 作者:行者123 更新时间:2023-12-04 14:54:21 27 4
gpt4 key购买 nike

此代码(用于检查当前目录的更改时间戳):

my $date = ".".IO.changed.DateTime.yyyy-mm-dd but Dateish; 
say $date;

产生错误:
«Ambiguous call to 'gist(Str+{Dateish}: )'; these signatures all match:␤:  (Str:D: *%_)␤:(Dateish:D:   │ avalenn
| *%_)␤ in block <unit> at <tmp> line 1␤␤»

没有 Dateish mix in ,字符串只是 2018-05-12 .使用任何其他类型的 Dateish函数,如 .week-year也会产生不同的错误:
«Str+{Dateish}␤Invocant of method 'Bridge' must be an object instance of type 'Int', not a type      │ a3r0
| object of type 'Int'. Did you forget a '.new'?␤ in block <unit> at <tmp> line 1␤␤»

这是否只是意味着您不能将字符串与 Dateish 混合使用?我在几个小时内做了类似的事情,没有问题。

最佳答案

要回答你的问题,我们应该看看这个角色:

my role Dateish {
has Int $.year;
has Int $.month; # should be int
has Int $.day; # should be int
has Int $.daycount;
has &.formatter;

...
multi method Str(Dateish:D:) {
&!formatter ?? &!formatter(self) !! self!formatter
}
multi method gist(Dateish:D:) { self.Str }
...
}

所以,角色 Dateish有几个属性,这些方法使用这些属性来计算它们的返回值。

当您这样做时 $some-string but Dateish ,您没有做任何事情来初始化属性,因此使用它们的方法调用(可能是间接的)以有趣的方式失败。

您如何获得 Dateish来自 DateTime 的对象然后?那么, DateTime是一个,已经,或者你可以强制到 Date如果这是你想要的:
my $date = ".".IO.changed.DateTime.Date; say $date

您也可以尝试实例化 Dateish通过提供所有属性,但与仅使用 Date 相比,我没有看到任何优势如预期。

关于date - Dateish 字符串的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50309179/

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