Crystal lang:理解方法返回类型的Void

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

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

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

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

问题是:

以上假设是否正确?

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

回答(1)

2 years ago

你是对的 . 语言中的某些最后更改尚未在文档中得到反映 . 我想是时候再写一些文档了:-)

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

所以Void和Nil之间没有区别,推荐的事情是在Crystal land中使用Nil(在C绑定中使用Void)