作者回复: 一门编程语言的最大目标,是程序员不犯错误,而不是好的程序员少犯错误。所以,在不同的角度看,答案也许不一样。 1. 除了isPresent,其他的方法都是附带的红利。 2. 如果能够消除空指针的产生,也就用不着Required了;如果消除不了,Required也不用着。 3. 这本质上和直接判断空指针是一样的,需要程序员的认真和代码阅读者的认真。如果都能够认真起来,就不存在空指针的问题了。 无论是GoLang还是Optional, Returned,和直接检查空指针相比,都没有简化代码。这是消除空指针影响的代价。
作者回复: 这个写法有意思。非空的话,该怎么处理?
作者回复: Optional一言难尽啊
作者回复: 是的,这个if语句编译器不能强制性的检查。
作者回复: 用对了就好,不过容易用错,不是我喜欢的方式
作者回复: 可以看看GitHub里同学们做的作业啊。如果GitHub的PR不能提供答案,我再看看怎么讲这些习题。
作者回复: 还在探索更简单的方式。