中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中怎么表達意圖

發布時間:2021-11-29 11:54:47 來源:億速云 閱讀:115 作者:iii 欄目:大數據

本篇內容主要講解“C++中怎么表達意圖”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++中怎么表達意圖”吧!

P.3: Express intent(表達意圖)

Reason(原因)

只要代碼不是意圖的直接陳述(例如在名稱或者注釋中),就可能存在實際行為和意圖不一致的情況。

Example(示例)
gsl::index i = 0;while (i < v.size()) {    // ... do something with v[i] ...}

恰好循環通過v的每個元素的意圖沒有被表達。index的實現細節被暴露出來(因此它可能被誤用),而且i的有效范圍要超過循環的范圍,這一點可能是有意的,也可能是無意的。讀者無法只通過這段代碼了解這些。

Better(較好):

for (const auto& x : v) { /* do something with the value of x */ }

現在,這里沒有清楚地提示迭代機制和作用在const元素的循環操作符,因此也就不會發生意外的修改。如果需要修改,就這么寫:

for (auto& x : v) { /* modify x */ }

有時作為更好的選擇,可以使用一個命名算法。這個例子中使用Ranges TS中的for_each是因為它可以直接表達意圖。

for_each(v, [](int x) { /* do something with the value of x */ });
for_each(par, v, [](int x) { /* do something with the value of x */ });

最后一個變形更加清楚的表明了我們并不關心v中元素被處理的次序。

程序員應該熟悉

  • The guidelines support library 支持庫指南

  • The ISO C++ Standard Library ISO C++標準庫

  • Whatever foundation libraries are used for the current project(s)目前項目中使用的任何基本庫。

譯者注:選擇最能表明意圖的寫法的前提條件是你首先得有的選。這就需要熟悉所使用的語言,各種庫的功能。
Note(注意)

換一個表達:表明要做什么而不是怎么做。

Note(注意)

某些語言比其他語言更善于表達意圖。

Example(示例)

如果兩個整數值表示2維平面中的一個點的坐標,那么可以說:

draw_line(int, int, int, int);  // obscure難以理解的draw_line(Point, Point);        // clearer清晰的
Enforcement(實施建議)

尋找那些具有更好選擇的常見樣式。

  • simple for loops vs. range-for loops 對于循環來講,比較簡單的for循環和range

  • f(T*, int) interfaces vs. f(span<T>) interfaces f(T*, int) 接口對 f(span<T>) 接口

  • loop variables in too large a scope(很大范圍中使用的循環變量)

  • naked new and delete 直接的new和delete操作

  • functions with many parameters of built-in types 包含很多內置類型參數的函數

到此,相信大家對“C++中怎么表達意圖”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

潜山县| 清镇市| 额尔古纳市| 会宁县| 上虞市| 西乌珠穆沁旗| 巴中市| 烟台市| 盘山县| 阿巴嘎旗| 航空| 马鞍山市| 榆社县| 大悟县| 托克逊县| 泌阳县| 海晏县| 塘沽区| 深圳市| 乐业县| 玉溪市| 长顺县| 雅安市| 峨眉山市| 宕昌县| 扎囊县| 家居| 屯昌县| 卢氏县| 义马市| 沁水县| 满洲里市| 邮箱| 永川市| 宁安市| 黔南| 玉林市| 青浦区| 同心县| 从化市| 永清县|