如何使用常量值作为哈希键

Sci*_*mon 15 perl6 raku

是否有一种简单的方法可以将定义常量的值用作Perl6中的散列/对键?

例如 :

constant KEY = "a string";
my %h = ( KEY => "a value" );
Run Code Online (Sandbox Code Playgroud)

这将创建"KEY"而不是"字符串"的键.

我可以 :

my %h = ( "{KEY}" => "a value" );
Run Code Online (Sandbox Code Playgroud)

但这似乎有点笨重.我想知道是否有更好的方法?

Jon*_*ton 16

最方便的选择是:

  • 用sigil(例如constant $KEY = "a string";)声明常量,从而首先避免问题
  • 将左侧包裹在括号中(如(KEY) => "a value"),因此不会将其视为文字
  • 把它改为 pair(KEY, "a value")

另请注意:

my %h = ( "{KEY}" => "a value" );
Run Code Online (Sandbox Code Playgroud)

是无用的括号,并且:

my %h = KEY, "a value";
Run Code Online (Sandbox Code Playgroud)

也可以工作,因为Pair分配给散列的值列表中的非s将被配对.然而,它失去了视觉配对,因此之前建议的选项之一可能更好.