如何在 Raku 中找到枚举的所有可能值?

msc*_*cha 8 raku

enum Direction <north east south west>;
for north, east, south, west -> $dir {
    say $dir;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我不想在这里重复方向值列表。我如何以编程方式获取此列表?

我在文档中没有找到任何内容。最接近的是.enums,但它返回(字符串)键到(整数)值的映射,而不是枚举值。

wam*_*mba 8

\n

如果顺序不重要

\n
enum Direction <north east south west>;\nDirection.pick(*).raku\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
enum Direction <north east south west>;\nDirection::.values.raku\n
Run Code Online (Sandbox Code Playgroud)\n

按值排序

\n
enum Direction \xc2\xab:2north :1east :south(10) :west(9)\xc2\xbb;\nDirection.pick(*).sort.raku\n
Run Code Online (Sandbox Code Playgroud)\n

按定义排序;\n如果您知道第一个和最后一个元素

\n
enum Direction \xc2\xab:2north :1east :10south :9west\xc2\xbb;\n(north, *.succ ... west).raku;\n
Run Code Online (Sandbox Code Playgroud)\n

如果你不这样做

\n
enum Direction \xc2\xab:2north :1east :10south :9west\xc2\xbb;\n(Direction.pick(*).first({ $_ === .pred }), *.succ ...^ * === *).raku\n
Run Code Online (Sandbox Code Playgroud)\n