如何解决q {}删除Raku映射中的空格
此Raku表达式将颜色代码从RGB转换为十六进制:
raku -e 'my @array = (0,255,0),{ @^a «+» (25.5,-25.5,0) } ... ( * ~~ (255,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,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)
都会变成三个格式化的元素,并用空格分隔,但是当您将空字符串指定为说明符。
q{}
是一个字符串(使用the Q
lang),它指定一个空字符串(即与''
相同)。
因此,您看到的结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。