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

%tweets<statuses>[0]<metadata><iso_language_code>.say;
%tweets<statuses>[0]<created_at>.say;

打印:
es
Fri May 04 13:54:47 +0000 2018

以下代码从搜索查询中打印推文的'created_at'值。
for @(%tweets<statuses>) -> $tweet {
  $tweet<created_at>.say;
}

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

谢谢!

最佳答案

如果问题是使用文字键进行哈希索引的语法是否比<...>短,则否,这就是它所需要的时间。在Perl 6中,没有将哈希数据结构与对象方法/属性/属性进行合并(例如,与JavaScript不同,在JavaScript中没有这样的区别,因此.都用于两者)。

但是,有很多方法可以消除重复和样板。例如:

%tweets<statuses>[0]<metadata><iso_language_code>.say;
%tweets<statuses>[0]<created_at>.say;

可以这样写:
given %tweets<statuses>[0] {
    .<metadata><iso_language_code>.say;
    .<created_at>.say;
}

这是使用主题变量$_。简而言之,也可以使用简单的循环,如下所示:
for @(%tweets<statuses>) {
    .<created_at>.say;
}

关于multidimensional-array - perl6 : access values in a multidimensional variable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50177233/

10-13 06:05