q{} 删除 raku 映射中的空格
q{} removing spaces in a raku map
此 Raku 表达式将颜色代码从 RGB 转换为 HEX:
raku -e 'my @array = (0, 255, 0), { @^a «+» (25.5, -25.5, 0) } ... ( * ~~ (255, 0, 0 ) );
say @array.map: "#" ~ *.fmt: "%02X"'
(#00 FF 00 #19 E5 00 #33 CC 00 #4C B2 00 #66 99 00 #7F 7F 00 #99 66 00 #B2 4C 00 #CC 33 00 #E5 19 00 #FF 00 00)
在表达式中添加 q{} 会删除空格:
raku -e 'my @array = (0, 255, 0), { @^a «+» (25.5, -25.5, 0) } ... ( * ~~ (255, 0, 0 ) );
say @array.map: "#" ~ *.fmt: "%02X", q{}'
(#00FF00 #19E500 #33CC00 #4CB200 #669900 #7F7F00 #996600 #B24C00 #CC3300 #E51900 #FF0000)
我无法弄清楚为什么在表达式中添加 'q{}' 会删除空格。我会感谢有关此问题的任何提示。谢谢
根据 the doc for .fmt
applied to a List
,例程的签名是:
method fmt($format = '%s', $separator = ' ' --> Str:D)
▲▲▲ - default separator
因此,默认情况下,每个三个元素 List
如 (0, 255, 0)
将在不指定分隔符时变成由 space 分隔的三个格式化元素,但在您将空字符串指定为说明符。
q{}
是一个字符串(使用the Q
lang)指定一个空字符串(即它与''
相同)。
这就是您看到的结果。
此 Raku 表达式将颜色代码从 RGB 转换为 HEX:
raku -e 'my @array = (0, 255, 0), { @^a «+» (25.5, -25.5, 0) } ... ( * ~~ (255, 0, 0 ) );
say @array.map: "#" ~ *.fmt: "%02X"'
(#00 FF 00 #19 E5 00 #33 CC 00 #4C B2 00 #66 99 00 #7F 7F 00 #99 66 00 #B2 4C 00 #CC 33 00 #E5 19 00 #FF 00 00)
在表达式中添加 q{} 会删除空格:
raku -e 'my @array = (0, 255, 0), { @^a «+» (25.5, -25.5, 0) } ... ( * ~~ (255, 0, 0 ) );
say @array.map: "#" ~ *.fmt: "%02X", q{}'
(#00FF00 #19E500 #33CC00 #4CB200 #669900 #7F7F00 #996600 #B24C00 #CC3300 #E51900 #FF0000)
我无法弄清楚为什么在表达式中添加 'q{}' 会删除空格。我会感谢有关此问题的任何提示。谢谢
根据 the doc for .fmt
applied to a List
,例程的签名是:
method fmt($format = '%s', $separator = ' ' --> Str:D)
▲▲▲ - default separator
因此,默认情况下,每个三个元素 List
如 (0, 255, 0)
将在不指定分隔符时变成由 space 分隔的三个格式化元素,但在您将空字符串指定为说明符。
q{}
是一个字符串(使用the Q
lang)指定一个空字符串(即它与''
相同)。
这就是您看到的结果。