perl6:访问多维变量中的值

Mim*_*net 5 multidimensional-array perl6

Perl6 Twitter模块使用搜索查询中的推文提供多维变量.这段代码:

%tweets<statuses>[0]<metadata><iso_language_code>.say;
%tweets<statuses>[0]<created_at>.say;
Run Code Online (Sandbox Code Playgroud)

打印:

es
Fri May 04 13:54:47 +0000 2018
Run Code Online (Sandbox Code Playgroud)

以下代码从搜索查询中打印推文的"created_at"值.

for @(%tweets<statuses>) -> $tweet {
  $tweet<created_at>.say;
}
Run Code Online (Sandbox Code Playgroud)

是否有更好的语法来访问变量%tweets的值?

谢谢!

Jon*_*ton 8

如果问题是使用文字键的哈希索引是否有更短的语法<...>,那么不,这就像它获得的那样短.在Perl 6中,散列数据结构与对象方法/属性/属性没有混合(例如,与JavaScript不同,没有这样的区别,因此.两者都使用).

然而,有很多方法可以摆脱重复和样板.例如:

%tweets<statuses>[0]<metadata><iso_language_code>.say;
%tweets<statuses>[0]<created_at>.say;
Run Code Online (Sandbox Code Playgroud)

可以写成:

given %tweets<statuses>[0] {
    .<metadata><iso_language_code>.say;
    .<created_at>.say;
}
Run Code Online (Sandbox Code Playgroud)

这是使用主题变量$_.简而言之,也可以使用简单的循环,如下所示:

for @(%tweets<statuses>) {
    .<created_at>.say;
}
Run Code Online (Sandbox Code Playgroud)