C++核心准则编译边学-F.8 优先选择纯函数

面向对象思考

共 609字,需浏览 2分钟

 ·

2019-11-07 23:23

d3b78eda597c6d291891b93627c95561.webp

F.8: Prefer pure functions(优先选择纯函数)


译者注:纯函数是指符合下面两个特点的函数:

  1. 同样的输入一定产生同样的输出。但是并不要求所有的数据都一定参数计算输出值。

  2. 不会产生副作用。除了可见的输出之外,不会产生额外的输出。这里额外的输出可以是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.

不可能。


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】,轻松学习每一天!

有任何疑问,欢迎留言提问或讨论。




面向对象设计,面向对象编程,面向对象思考!



浏览 42
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报