perl6:访问多维变量中的值
perl6: access values in a multidimensional variable
Perl6 推特模块给出了一个多维变量,其中包含来自搜索查询的推文。此代码:
%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 中,没有哈希数据结构与对象 methods/attributes/properties 的混淆(与 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;
}
Perl6 推特模块给出了一个多维变量,其中包含来自搜索查询的推文。此代码:
%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 中,没有哈希数据结构与对象 methods/attributes/properties 的混淆(与 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;
}