设为首页 加入收藏

TOP

4.3.1 "无意义"的值
2013-10-07 14:59:43 来源: 作者: 【 】 浏览:76
Tags:4.3.1 " 意义 的值

4.3.1 "无意义"的值

函数并不是总能返回有效的返回值,很多时候函数可能返回"无意义"的值,这不意味着函数执行失败,而是表明函数正确执行了,但结果却不是有用的值。如果用数学语言来解释,就是返回值位于函数解空间之外。

例如,求一个数的倒数,在实数域内开平方,在字符串中查找子串,它们都可能返回无效的值。有些无效返回的情况可以用抛出异常的方式来通知用户,但有的情况下这样代价很高,或者不允许异常,这时必须要以某种合理的高效的方式通知用户。

表示返回值无意义最常用的做法是增加一个"哨兵"的角色,它位于解空间之外,如NULL、-1、EOF、string::npos、vector::end()等。但这些做法不够通用,而且很多时候不存在解空间之外的"哨兵"。

optional使用"容器"语义,为这种"无效值"的情形提供了一个较好的解决方案。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.2.3 向typeof库注册自定义类 下一篇4.3.3 操作函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: