【问题标题】:Crystal lang: understanding method return type of VoidCrystal lang:理解Void的方法返回类型
【发布时间】:2016-09-11 05:42:51
【问题描述】:

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

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

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

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

问题是:

以上假设正确吗?

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

【问题讨论】:

    标签: crystal-lang


    【解决方案1】:

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

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

    所以这里没有Void和Nil的区别,推荐在Crystalland中使用Nil(在C绑定中使用Void)

    【讨论】:

    • 这完全合理,如果他不想返回任何内容(转义隐式返回),他应该能够将某种返回类型标记为“无”。顺便说一句,Crystal 超级棒,刚刚从“只读”模式转移并开始用它写一些东西!
    • @ClassyPimp 太好了!顺便说一句,今天我为此添加了文档:crystal-lang.org/docs/syntax_and_semantics/return_types.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2014-04-23
    相关资源
    最近更新 更多