非常基本的问题,但我似乎无法找到有关文档中多个范围的任何内容.
如何从perl6数组中选择多个范围?
my @a = "a","b","c","d";
@a[0..1,3] # expecting array with a, b & d as p5
Run Code Online (Sandbox Code Playgroud)
这似乎回到一种嵌套列表的,什么是Perl 6的语法acheive结果,这将在Perl 5(即数组一代产量a,b&d)?
Cur*_*mes 10
你的问题有点令人困惑,但假设你有错字或其他什么,我会试着猜你在问什么.
这使得一个简单的数组:
> my @a = "a", "b', "c", "d";
[a b c d]
Run Code Online (Sandbox Code Playgroud)
这使得一个Rangefrom 0..1和3 的匿名数组:
> @[0..1,3];
[0..1 3]
Run Code Online (Sandbox Code Playgroud)
如果您希望它从@a数组中提取值,则必须引用它:
> @a[0..1,3];
((a b) d)
Run Code Online (Sandbox Code Playgroud)
拉你问从位@a-第一个元素是0..1的部分@a,(a,b)- (不知道为什么你想看看c在这里..)
这是嵌套列表 - 您要求的两个位包括第一个字段中的列表,以及d您在第二个字段中请求的值.
如果你想要扁平化而不是嵌套,你可以使用.flat:
> @a[0..1,3].flat;
(a b d)
Run Code Online (Sandbox Code Playgroud)
在Perl 6中,0..1结果是一个项目,这是一个范围.在Perl 5中,0..1立即扩展为两个数字.
Perl 6中最常见的一个错误就是忘记了事情.好处是,在Perl 6中,我们基本上可以免费获得相当于Perl 5的引用,这消除了大量凌乱的引用和解除引用.
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |