いくつかのサブセットを定義し、それにいくつかの制約といくつdie
かの有用なエラーメッセージのいくつかのステートメントも追加します。これらのサブセットを使用するモジュールの上部でそれらを定義するのではなく、それらを別のモジュールに配置し、完全修飾名(FQN)を使用しないようにします。たとえば、私は持っています
unit module Long::Module::Subsets;
subset PosInt
where ($_ ~~ Int || "The value must be an integer")
&& ($_ > 0 || "The value must be greater than 0")
is export
;
# other subsets ...
しかし得た
===SORRY!=== Error while compiling /tmp/637321813/main.pl6
Two terms in a row ...
それが機能していないので、代わりに次のようにすることができると考えましたが、それを避けることができるかどうか疑問に思っています:
use Long::Module::Subsets;
unit Long::Module;
my constant PosInt = Long::Module::Subsets::PosInt;
my constant Byte = Long::Module::Subsets::Byte;
# ... more subsets here
# ... some code here
my PosInt $age;
1
補足として、PosIntを含む一般的なサブセットモジュールがあります:github.com/bradclawsie/Subsets-Common
—
user0721090601