小编Spl*_*Dev的帖子

返回可选值的惯用方法是什么?

我在这里碰到了一堵墙.假设我的代码如下所示:

def foo
    if bar
        123
    else
        nil
    end
end
Run Code Online (Sandbox Code Playgroud)

这里的返回值是Int或Nil.我已经习惯了可选项的概念(在Rust,F#,Haskell等语言中),这让我很困惑.

我意识到我可以毫无问题地返回任何类型的值,但是来自更具功能性的背景它只是感觉不对.

在Rust,我会回来的Option<T>.这样我就可以轻松地测试是否Some返回了值,或者没有值(None).在Ruby/Crystal中,这看起来很愚蠢.

所以,这里有一个问题:
如果nil没有有用的值返回并对其进行测试,我是否应该返回,这是处理此类情况的惯用方法吗?如果没有,我该如何以惯用的方式做到这一点?

ruby crystal-lang

1
推荐指数
1
解决办法
240
查看次数

标签 统计

crystal-lang ×1

ruby ×1