【发布时间】:2020-04-05 07:39:03
【问题描述】:
这显然是不可能的......
role Versioned {
method version () {
return self.^api;
}
}
class WithApi:ver<0.0.1>:auth<github:JJ>:api<0> does Versioned {}
class WithApi:ver<0.0.1>:auth<github:JJ>:api<1> does Versioned {}
say WithApi:api<0>.new.version;
say WithApi:api<1>.new.version;
这会死
==SORRY!=== Error while compiling /home/jmerelo/progs/perl6/my-perl6-examples/api-versioned.p6
Redeclaration of symbol 'WithApi'
at /home/jmerelo/progs/perl6/my-perl6-examples/api-versioned.p6:11
------> 1>:auth<github:JJ>:api<1> does Versioned⏏ {}
那么甚至可以在一个程序中使用不同的apis、同名的use 类吗?
更新:如果它们包含在不同的文件中,这是得到的错误:
P6M Merging GLOBAL symbols failed: duplicate definition of symbol WrongType
【问题讨论】: