小编Val*_*kas的帖子

将Seq(Seq)分配给数组

将Seq(Seq)分配给多个类型数组而不先将Seq分配给标量的正确语法是什么?Seq是否会以某种方式展平?这将失败:

class A { has Int $.r }

my A (@ra1, @ra2);

#create two arrays with 5 random numbers below a certain limit

#Fails: Type check failed in assignment to @ra1; expected A but got Seq($((A.new(r => 3), A.n...)
(@ra1, @ra2) =
   <10 20>.map( -> $up_limit {
        (^5).map({A.new( r => (^$up_limit).pick ) })
    });
Run Code Online (Sandbox Code Playgroud)

raku

11
推荐指数
2
解决办法
146
查看次数

在 for 循环中用 .subst 替换字符串

我想for使用命名捕获在块中进行字符串替换。我期望得到数字 1,2,3 作为输出。但它Nil用于第一次运行,然后是 1 和 2 用于第二次和第三次运行。如何.subst在循环结构中正确使用?当使用map构造而不是for循环时,我看到了相同的行为。如果我用固定的字符串值替换它,它确实按预期工作。

for <a1 b2 c3> -> $var {
    say $var;
    say $var.subst(/.$<nr>=(\d)/, $<nr>); #.subst(/.$<nr>=(\d)/, 'X'); #OK      
}

#`[
This is Rakudo version 2019.11 built on MoarVM version 2019.11   
Output:

a1
Use of Nil in string context
  in block  at test3.pl6 line 3

b2
1
c3
2
]
Run Code Online (Sandbox Code Playgroud)

string-substitution raku

9
推荐指数
1
解决办法
207
查看次数

在多行中定义-或“ //”

为什么1,2和3版本有效,但4版本却失败:Null regex not allowed//多行上使用时?

#1
say Nil         //
    try {'a'++} //
    1;

#2
say    Nil
    // try {'a'++} //
       2;

#3
say   Nil
   // 3;

#Fails with: Null regex not allowed
say        Nil
        // try {'a'++}
        // 4;
Run Code Online (Sandbox Code Playgroud)

raku

7
推荐指数
1
解决办法
154
查看次数

访问JSON ::仅路径编号键

访问仅带有Perl6 Module JSON :: Path编号的json键的正确语法是什么?我收到“位置6处的JSON路径解析错误”错误。

我想访问项目-> 2018->名称:

use JSON::Path;

my Str $json = ?
{
  "items" : {
    "old"  : { "name" : "olditem" },
    "2017" : { "name" : "item1"   },
    "2018" : { "name" : "item2"   },
    "2019" : { "name" : "item3"   }
  }
}
?;
Run Code Online (Sandbox Code Playgroud)

还行吧

#("olditem", "item3", "item1", "item2")
my JSON::Path $jp .= new: '.items[*].name';
say $jp.values($json);
Run Code Online (Sandbox Code Playgroud)

还可以

#("olditem")
$jp .=  new: '.items.old.name';
say $jp.values($json);
Run Code Online (Sandbox Code Playgroud)

没有返回任何东西

#()
$jp .= new: ".items['2018'].name";
say $jp.values($json);
Run Code Online (Sandbox Code Playgroud)

错误

#JSON …
Run Code Online (Sandbox Code Playgroud)

jsonpath raku

7
推荐指数
1
解决办法
146
查看次数

Text :: CSV支持的编码

在哪里可以找到Text :: CSV支持的编码?是否不支持“ latin1”或语法错误?

这确实失败了:

use Text::CSV;

spurt '/tmp/test.csv', 'ID;Gerät;Nr', :enc<latin1>;

slurp '/tmp/test.csv', :enc<latin1>; #ok

say csv :in</tmp/test.csv>, :encoding<latin1>, :sep_char<;>; 
#Malformed UTF-8 error
Run Code Online (Sandbox Code Playgroud)

csv raku

7
推荐指数
2
解决办法
127
查看次数

Log :: IntelliJ中的时间线可视化

日志::时间轴可视化还支持与逗号IDEA插件的IntelliJ呢,还是独立逗号IDE的一部分吗?并且,如果IntelliJ支持它,则IntelliJ是否需要其他组件?

raku commaide

5
推荐指数
1
解决办法
73
查看次数

标签 统计

raku ×6

commaide ×1

csv ×1

jsonpath ×1

string-substitution ×1