OC

Knowledge OS
登录 注册
全部话题 移民 创业 iOS Mac Objective-C Swift Android 招聘 求职

你觉得Swift里面的Optional类型是好事儿还是坏事儿?

tinyfool
tinyfool 发布于 2014年12月05日
lionlee 等0人欣赏。

Ok,它很安全,不会出现nil,问题是nil真的有这么可怕么?一用问号,代码后面都要用问号或者惊叹号,带来的繁琐是不是更麻烦呢?

你怎么看这个问题?

共17条回复
楼长 ·
jane4321 回复于 2014年12月05日

我也一直不理解为什么要用这个Optional。

2楼 ·
netdigger 回复于 2014年12月05日

不是好事儿。想做的完美,可惜就是没有考虑过用得人的感觉。

3楼 ·
nobuta 回复于 2014年12月05日

个人非常讨厌optional这种东西,一般有点经验的人都会自己检查nil的吧,没必要这样搞,反而觉得很麻烦

4楼 ·
netdigger 回复于 2014年12月05日

3楼 @nobuta 现在很多接口返回值都搞成了optional,怎么解决这个问题?

5楼 ·
tinyfool 回复于 2014年12月05日

4楼 @netdigger 按照它那个规则,不搞成optional都不行

6楼 ·
peterwang 回复于 2014年12月05日

写一段代码比较一下使用 Optional 和 不用 Optional 显式写 nil 判断,应该就很清楚了。Optional 的 composability 更好吧。

7楼 ·
tinyfool 回复于 2014年12月05日

6楼 @peterwang 这个倒是无所谓,但是带来的每行代码里面都有问号或者惊叹号,好令人困扰啊

8楼 ·
peterwang 回复于 2014年12月05日

@tinyfool 这个 Optional type 是借鉴自 Haskell 的 Maybe,你有兴趣的话可以看看在 Haskell 中 Maybe [1] 是如何改进代码的可读性和可组合性的,我觉得背后的动机是一样的。

[1] http://book.realworldhaskell.org/read/monads.html

9楼 ·
webfrogs 回复于 2014年12月05日

就近几个月的 swift 使用上来说,我觉得是好事。

不过 optional 也会带来坑,比如对值为 nil 的optional 值使用强制解包的 ! 操作符会导致程序 crash。特别是对 swift 还不熟悉的新手来说经常范这样的错误。

总的来说,感觉 swift 写起来的爽快程度要比 objc 好很多。

10楼 ·
nobuta 回复于 2014年12月12日

4楼 @netdigger 官方接口返回optional的话,你只有老老实实检查咯,自己写接口还是应该遵循规则可能为空老老实实返回optional,哈哈,虽然很烦

本帖有17个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。
登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]

AltStyle によって変換されたページ (->オリジナル) /