C 核心準則邊譯邊學 F 8 優先選擇純函式

2021-10-01 20:30:42 字數 636 閱讀 3461

譯者注:純函式是指符合下面兩個特點的函式:

同樣的輸入一定產生同樣的輸出。但是並不要求所有的資料都一定引數計算輸出值。

不會產生***。除了可見的輸出之外,不會產生額外的輸出。這裡額外的輸出可以是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(示例)

templateauto square(t t)
enforcement(實施建議)

not possible.

不可能。

C 核心準則邊譯邊學 P 13 酌情使用支援庫

reason 原因 使用經過良好設計,良好文件化,良好支援的功能庫既可以省時,又可以省力。即使你花費主要精力去實現某項功能,支援庫的品質和文件還是有很大的可能性會會比你做的好。支援庫的成本 時間,勞力,費用等 可以被很多使用者分擔。乙個廣泛使用的支援庫比單獨的應用更有可能保持最新狀態並且使用到新系統...

C 核心準則邊譯邊學 X 5 盡量不使用型別轉換

按照c 核心準則的說法,應該儘量減少型別轉換的使用,如果必須使用則使用narrow cast和narrow。以下分幾種情況討論這個問題。本來就不應該使用的情況 觀察如下 class baseclassvirtual void vfun class subclass public baseclass ...

coding邊學邊記之C

1.c 中定義函式要有析構函式 2.c 中自定義標頭檔案需要 ifndef code cpp global h define code cpp global h endif code cpp global h3.c 中的map插入鍵值對時,一定要先檢查鍵是否存在,因為 a.如果插入相同鍵的操作,無論...