这是 Raku 的一个实验:
> my $x
(Any)
> my $y=1
1
> my @a=[1, 2]
[1 2]
> my %h=a=>'b'
{a => b}
> say "nil" unless $x
nil
我理解了[]
表示数组文字,{}
哈希文字。
我也可以看到(Any)
行为类似于 nil - 在上面显示的布尔上下文中返回 false。
我找到了(Any)
有趣的。文档告诉我Any
只是乐中的神职之一。但是括号是做什么用的()
around Any
告诉我?
当您使用 REPL 时,表达式的结果显示为say
. The say
函数调用.gist
表达式上的函数。
Any
是一个类型对象。类型对象有一个.gist
将括号括起来的方法。
The put
功能几乎一样say
函数,但它调用.Str
表达式上的函数。这会产生一个警告,因为您无法真正对类型对象进行字符串化。观察差异:
$ raku -e 'say Any'
(Any)
# raku -e 'put Any'
Use of uninitialized value of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
in block <unit> at -e line 1
See 类和对象 https://docs.raku.org/language/classtut, 类型系统 https://docs.raku.org/language/typesystem, 类型对象 https://docs.raku.org/language/objects#index-entry-Type_objects了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)