Способ в вопросе в значительной степени хорошо. Так как map
в любом случае приведет к list
, можно отбросить явное приведение .list
, получив:
say "I ❤ ?".encode.map(*.base(16));
Поскольку .base
- чистая операция, ее также можно использовать безопасно. с гипероператором >>
, который также выдаст listify:
say "I ❤ ?".encode>>.base(16);
Если я немного придираюсь, обратите внимание, что «преобразовать строку в список ее байтов» не указано, не говоря о кодирование. По умолчанию используется UTF-8, поэтому encode
преобразует строку в эту. В Raku представление строк в памяти на уровне байтов не является определенным аспектом языка, а строки представляют собой непрозрачный тип данных. Реализация может свободно выбирать любое лежащее в ее основе представление (у MoarVM есть как минимум 3 способа внутреннего моделирования модели строки), однако, как пользователь языка, вы никогда не увидите этого.