C++核心準(zhǔn)則編譯邊學(xué)-F.8 優(yōu)先選擇純函數(shù)

F.8: Prefer pure functions(優(yōu)先選擇純函數(shù))
譯者注:純函數(shù)是指符合下面兩個特點(diǎn)的函數(shù):
同樣的輸入一定產(chǎn)生同樣的輸出。但是并不要求所有的數(shù)據(jù)都一定參數(shù)計算輸出值。
不會產(chǎn)生副作用。除了可見的輸出之外,不會產(chǎn)生額外的輸出。這里額外的輸出可以是I/O操作,調(diào)用額外接口,發(fā)送通信數(shù)據(jù)等。
Reason(原因)
Pure functions are easier to reason about, sometimes easier to optimize (and even parallelize), and sometimes can be memoized.
純函數(shù)更容易理解,有時也更容易優(yōu)化(也更容易用于并發(fā)環(huán)境),有時可以被緩存。
譯者注·1
譯者注:memoize可以理解為memo+ize,應(yīng)該是計算機(jī)行業(yè)創(chuàng)造出來的詞匯,其含義是存儲,記憶。這里譯為緩存。
幸虧查了一下,要不然還以為他老人家拼錯了呢。
Example(示例)
template<class T>auto square(T t) { return t * t; }
Enforcement(實(shí)施建議)
Not possible.
不可能。
覺得本文有幫助?請分享給更多人。
關(guān)注【面向?qū)ο笏伎肌浚p松學(xué)習(xí)每一天!
有任何疑問,歡迎留言提問或討論。
面向?qū)ο笤O(shè)計,面向?qū)ο缶幊?,面向?qū)ο笏伎迹?/p>
評論
圖片
表情
