您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“C++名稱該怎么寫”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
ES.7: 通用和局部的名稱應(yīng)該簡短,特殊和非局部的名稱應(yīng)該較長。
Reason(原因)
可讀性。避免無關(guān)的非局部名稱之間的沖突。
Example(示例)
遵循慣例的,簡短的局部變量可以增加可讀性。
template<typename T> // good
void print(ostream& os, const vector<T>& v)
{
for (gsl::index i = 0; i < v.size(); ++i)
os << v[i] << '\n';
}
索引習(xí)慣上命名為i;在這個通用函數(shù)中,關(guān)于vector的含義沒有任何參考信息,因此v也是一個好名字。
template<typename Element_type> // bad: verbose, hard to read
void print(ostream& target_stream, const vector<Element_type>& current_vector)
{
for (gsl::index current_element_index = 0;
current_element_index < current_vector.size();
++current_element_index
)
target_stream << current_vector[current_element_index] << '\n';
}
是的,這段代碼有點夸張,但是我們確實看過更差的。
Example(示例)
特殊且很短的非局部名稱會擾亂代碼:
void use1(const string& s)
{
// ...
tt(s); // bad: what is tt()?
// ...
}
稍好一點的做法是,為非局部實體提供可讀的名稱:
void use1(const string& s)
{
// ...
trim_tail(s); // better
// ...
}
存在這樣的可能性:讀者能夠理解trim_tail的含義并且可以在查閱代碼之后能夠記住它。
Example, bad(反面示例)
長函數(shù)的參數(shù)名屬于事實上的非局部變量,應(yīng)該具有明確的含義:
void complicated_algorithm(vector<Record>& vr, const vector<int>& vi, map<string, int>& out)
// read from events in vr (marking used Records) for the indices in
// vi placing (name, index) pairs into out
{
// ... 500 lines of code using vr, vi, and out ...
}
我們推薦保持函數(shù)簡短,但是該規(guī)則不會適用于所有情況,名稱也應(yīng)該反映這種變化。
Enforcement(實施建議)
檢查局部和非局部變量的長度。注意同時考慮函數(shù)的長度。
“C++名稱該怎么寫”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。