Использование любых или никаких ключей и значений ha sh в Raku - PullRequest
4 голосов
/ 10 января 2020

Я пытаюсь использовать any или none для ключей или значений га sh, например:

my %w=(a => 1, b => 2);
say %w.keys; # works
say so 'a' == %w.keys.any; # doesn't work

Я проверил документацию Raku ха sh и раздел карты, но не смогли решить эту проблему. Как это исправить? Спасибо.

Ответы [ 2 ]

11 голосов
/ 10 января 2020

Код умирает так:

Cannot convert string to number: base-10 number must begin with
valid digits or '.' in '⏏a' (indicated by ⏏)

Это происходит потому, что == является оператором сравнения цифр c, поэтому он сначала пытается привести аргументы в число перед выполнением сравнения. * Клавиши 1005 *

Ha sh - по крайней мере, по умолчанию - являются строками, поэтому здесь необходим оператор eq для сравнения строк:

my %w=(a => 1, b => 2);
say so 'a' eq %w.keys.any; # True
2 голосов
/ 10 января 2020

используйте оператор cmp при сравнении со строкой:

say so 'a' cmp %w.keys.any;
...