1

它没有记录在文档中。但是通过实验,我发现将方法的返回类型键入为 Void 会取消“最后一条语句返回”(这很好),使其返回 Nil。

def foo; "baz"; end #=> "baz" : String

def foo : Void; "baz"; end#=> 无

def foo : Nil; "baz"; end#=> 无

问题是:

以上假设正确吗?

Void 和 Nil 方法返回类型有什么区别吗?

4

1 回答 1

2

你是对的。语言中的一些最后更改尚未反映在文档中。我想现在是我写更多文档的时候了:-)

看到这个合并的地方:https ://github.com/crystal-lang/crystal/pull/2701

所以那里的 Void 和 Nil 没有区别,推荐的做法是在 Crystal 领域使用 Nil(在 C 绑定中使用 Void)

于 2016-09-11T12:16:33.950 回答