Crystal lang: 理解方法 return Void 类型

Crystal lang: understanding method return type of Void

它没有记录在文档中。但是通过实验,我发现将 return 类型的方法键入为 Void,会取消 "last statement return"(这很好),使其成为 returning Nil。

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

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

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

问题是:

以上假设是否正确?

Void和Nil方法return类型有区别吗?

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

查看合并的位置:https://github.com/crystal-lang/crystal/pull/2701

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