扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年2月7日
关键字:
搜索问题是一类特殊的问题,因为如果它们无法找到搜索结果,这种情况完全可以接受。既然我们以常使用搜索函数来检查某个项目是否存在,那么,没有找到这个项目就不能算是出错;所以此时就不能用异常中断程序运行。遇到这种情况,许多搜索函数将返回一个看守值,但是如果不小心处理,你的程序可能易于出现一致性问题,并且缺乏安全。另外,如果在被搜索的集合中可能出现一个无效值,就不能把它用作看守值;一些类型,如整数,一般不允许你将它赋值为NULL。
处理这个问题的其它方法由某些更新型的程序语言提供——可选类型——由Haskell中的Maybe或Ocaml中的Option表示。可选类型允许你将一个函数的结果定义为标准类型,或Nothing。这使你把NULL用作看守值,从而避免了传统看守值造成的安全和一致性问题,因为Nothing值仅在使用可选类型时使用,并且所有可选类型必须手动声明。这样可以保证Nothing值不会扩散到代码的其它部分,可以更容易地追踪意外缺陷。
坚持使用本文提到的设计方法似乎受到很大限制,但采用一些明智的指导,可以使你的代码更易于维护,更便于扩张,最终更易于理解。即使没有其它好处,研究“武士道”编码方法也能为你提供一些编写软件的新思路。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者