|
|
1
2
你说过你不想有两种类型,但你没有解释 为什么? .这使得你很难理解你实际上要解决的问题。
由于这个问题目前的措辞,想要将这些类型合并为一个类型是没有正当理由的。它们不一样。一个有结果,另一个没有。
从本质上讲,你的论点与说:
技术上可行吗?当然这是个好主意吗?没有。它与静态类型、OOP原则和一般干净的编码实践背道而驰。 通过合并这两种结果类型,您将省略无值结果类型,从而导致您所面临的问题:无法优雅地实现无值结果。
我怀疑你可能掩盖的是
这允许您
重新使用
一些
请注意,这反映了类似的用例,例如
这只是请求空引用异常。有有效的案例
通过依赖无值结果类型的静态类型,可以有效地确保不需要空检查。 由于给定方法是返回无值结果还是返回值结果这一事实无论如何都是在方法体中硬编码的,因此让方法的返回类型也实际反映这一点不会有任何损失。 这是一个向您的消费者明确他们可以从您的方法中得到什么的问题。通过合并结果类型,您可以使其变得不清晰,从而不必要地混淆接口。
还要注意的是,我并不认为有必要
|
|
2
1
否,也不使用任何其他实现类
这种方法可能适合您的需要。
创建的实例时
|
|
3
1
空值的问题是值类型不能为空。
尽管如此,我还是建议让你的类保持不变:
更好的方法是使用私有构造函数和静态
用法:
这使得通过读取调用代码很容易理解结果是成功还是失败。 |