这是 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 - 在上面显示的 bool 上下文中返回 false。我找到了
(Any)
有趣的。文档告诉我 Any
只是乐中的神职之一。但是括号是做什么用的()
附近Any
告诉我?
最佳答案
当您使用 REPL 时,表达式的结果使用 say
显示. say
函数调用 .gist
表达式上的函数。Any
是一个类型对象。类型对象有一个 .gist
将括号放在它们周围的方法。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
见 Classes and Objects , Type System , Type Objects想要查询更多的信息。
关于raku - Raku 中 (Any) 的含义是什么 - 特别是 ()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61818213/