微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scala Option是否与C#Nullable类型相同?

Scala中,你有Option [Int],它将是Some(number)或None,并且有一个属性isDefined,它在第一种情况下返回true而在另一种情况下返回false.

在C#中你有int吗?它将是一个数字或null并具有一个属性HasValue,它在第一种情况下返回true而在另一种情况下返回false.

Scala的选项与C#的Nullable类型相同,有什么区别吗?

最佳答案:

不,它完全不一样.除了其他答案:

> Scala有Option [Option [Int]]; C#没有int ??.
> Scala有Option [String]; C#没有字符串?
>在C#中,存在从T到T的隐式转换?在Scala中,没有从T到Option [T]的隐式转换(Scala允许您手动定义这样的转换,但不建议这样做).

这意味着Option比它更加统一和可组合?并允许它被更广泛地使用.例如. Scala的Map [K,V] .get(K)返回Option [V];但在.Net中,Dictionary<TKey, TValue>[TKey]无法返回TValue ?,因为TValue可以作为参考类型.甚至相当于Option.map也需要为返回值类型和引用类型的函数分别实现.

我还想重申一下应该避免!但是,当没有得到get时,isDefined完全没问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐