Как использовать значение константы как хэш-ключ

Есть ли простой способ использовать значение определенной константы в качестве хеш-пары в Perl6?

Например:

constant KEY = "a string";
my %h = ( KEY => "a value" );

Это создаст ключ "КЛЮЧ", а не "строку".

Я могу сделать:

my %h = ( "{KEY}" => "a value" );

Но это кажется немного неуклюжим. Мне было интересно, есть ли лучший способ?

Ответ 1

Наиболее удобными вариантами могут быть:

  • Объявите константу с сигилом (например, constant $KEY = "a string";), тем самым избегая проблемы в первую очередь
  • Оберните левую сторону в круглых скобках (например, (KEY) => "a value"), поэтому оно не будет рассматриваться как литерал
  • Вместо этого напишите как pair(KEY, "a value")

Также обратите внимание, что:

my %h = ( "{KEY}" => "a value" );

Бесполезное использование круглых скобок, и что:

my %h = KEY, "a value";

Будет также работать, поскольку Pair non- в списке значений, назначаемых хешу, будет спарена. Однако он теряет визуальное сопряжение, поэтому один из ранее предложенных вариантов, возможно, лучше.