在per5中,我可以使用变量,例如$ foo或@bar而不使用" my"。
library(lubridate)
date <- now()
print(date)
new_date <- update(date, year = 2010, month = 1, day = 1)
print(new_date)
在perl6中,为什么我必须使用&#34; my&#34;每时每刻?否则编译器会说变量unclared。为什么perl6只能自动生成?
$foo=1; @bar=(1,2);
我不喜欢必须经常使用&#34;我的&#34;。这个级别太低了,比如C;非常麻烦。
有没有办法打开始终自动生成?
感谢。
答案 0 :(得分:10)
出于各种原因,从语言设计的角度来看,没有明确的变量声明是一个糟糕的主意。可以说,显式声明的块范围的词汇变量是可行的方法,我发现它有多少语言的“脚本”和#39;多样性得到这个&#39;错误&#39; (这是let
被添加到Javascript的原因......)
也就是说,Perl6支持no strict
pragma,它允许你省略声明。
答案 1 :(得分:4)
no strict;
$foo=1; @bar=(1,2);
print "{@a=1,2,3;}\n";
# OUTPUT«1 2 3»
Perl 6会尝试帮助您处理正确的错误消息。如果您声明所有变量,它会为您提供猜测,如果您有拼写错误,您的意思是什么。还有一些新的语言功能,如常量和无意义的变量,如果没有声明符,就无法写下来。