Perl 6 中的主题变量 $_
Posted YoungForPerl6
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl 6 中的主题变量 $_相关的知识,希望对你有一定的参考价值。
Perl 6 中的主题变量 $_
新的一年, 学习一下 Rakudo Perl 6.
今天是 2019 年差四天, 我们说一说 Perl 6 中的主题变量, 或者说是默认变量,即 $_
, 今天的 topic。
在其它语言中, 默认变量可能是一个下划线(underline), 例如 Scala 中就用 _
来代表一个默认变量。
而在 Perl 6 中, 默认变量可以让我们的生活更美好。虽然 $_
是主题变量, 但是我们在很多情况下都可以省略它!
for
我们从最简单的 say
函数开始吧。
.say for ^2020;
在这里 .say
就是 $_.say
的简写, 因为 for 循环在这里没有使用循环变量,
默认就把序列中的每个值赋给 $_
这个默认的循环变量。
given
.say given 'Wish list';
when
$_ = 42;
when 42 { say 'find it' };
for .. when
for 42, 43, "foo", 44, "bar" {
when Int { .say }
when /:i ^Bar/ { .say }
default { say "Not an Int or a Bar" }
}
for .. given
for Date.new('2019-01-01') .. Date.new('2019-02-04') {
printf("%04d%02d%02d\n", .year, .month, .day) given .DateTime
}
Block
my @results = lazy '/usr/share/dict/SOWPODS'.IO.lines.grep: {
.chars ≤ 72 &&
.substr(0, 1) ∈ 'a' .. 'z' &&
.comb.Bag ⊆ 'A' .. 'Z'
}
»
my @year = <2019 2018 2012 2020>;
@year».chars;
my @lines = gather "/usr/share/dict/words".IO.lines».chars».take;
gather take for
gather .take for <Nim Rust Perl>;
gather take 2 * $_ if $_ ** 2 > 19 for ^100;
列表解析
gather .take when /7$/ for 1..99;
gather take $_ ** 2 for 1..10;
with
.say with 42
再见!
以上是关于Perl 6 中的主题变量 $_的主要内容,如果未能解决你的问题,请参考以下文章