C++核心准则编译边学-F.8 优先选择纯函数
F.8: Prefer pure functions(优先选择纯函数)
译者注:纯函数是指符合下面两个特点的函数:
同样的输入一定产生同样的输出。但是并不要求所有的数据都一定参数计算输出值。
不会产生副作用。除了可见的输出之外,不会产生额外的输出。这里额外的输出可以是I/O操作,调用额外接口,发送通信数据等。
Reason(原因)
Pure functions are easier to reason about, sometimes easier to optimize (and even parallelize), and sometimes can be memoized.
纯函数更容易理解,有时也更容易优化(也更容易用于并发环境),有时可以被缓存。
译者注·1
译者注:memoize可以理解为memo+ize,应该是计算机行业创造出来的词汇,其含义是存储,记忆。这里译为缓存。
幸亏查了一下,要不然还以为他老人家拼错了呢。
Example(示例)
template<class T>
auto square(T t) { return t * t; }
Enforcement(实施建议)
Not possible.
不可能。
觉得本文有帮助?请分享给更多人。
关注【面向对象思考】,轻松学习每一天!
有任何疑问,欢迎留言提问或讨论。
面向对象设计,面向对象编程,面向对象思考!
评论