亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我不應該用“匈牙利符號”?

為什么我不應該用“匈牙利符號”?

為什么我不應該用“匈牙利符號”?我知道匈牙利語所指的是什么-提供關于變量、參數或類型的信息,作為其名稱的前綴。盡管在某些情況下,這似乎是一個好主意,但似乎每個人都瘋狂地反對它。如果我覺得有用的信息正在被傳授,為什么我不應該把它放在可以得到的地方呢?另見:人們在現實世界中使用匈牙利命名慣例嗎?
查看完整描述

3 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

他說的“申請”信息應該在類型系統中進行編碼。..不應該依賴翻轉變量名來確保不將不安全的數據傳遞給需要安全數據的函數。你應該把它變成一個類型錯誤,所以它是不可能這樣做。任何不安全的數據都應該有標記為不安全的類型,這樣就不能簡單地將其傳遞給安全函數。要從不安全轉換為安全,需要使用某種消毒功能進行處理。

喬爾所說的“種類”的很多東西都不是種類,事實上,它們是類型的。

然而,大多數語言所缺少的是一種類型系統,它具有足夠的表現力來加強這種區別。例如,如果C有一種“強類型的類型”(在這種情況下,類型名稱包含基類型的所有操作,但不能轉換為基類型),那么許多這些問題就會消失。例如,如果你可以說,strong typedef std::string unsafe_string;引進一種新型unsafe_string無法轉換為std:string(因此可以參與重載解決等)。那我們就不需要愚蠢的前綴了。

所以,關于匈牙利語對非類型事物的中心說法是錯誤的。它被用于類型信息。當然,類型信息比傳統的C類型信息更豐富;是類型信息編碼了某種語義細節來表示對象的用途。但它仍然是類型信息,正確的解決方案一直是將其編碼到類型系統中。將其編碼到類型系統中是獲得規則的正確驗證和執行的最佳方法。變量的名字根本不切斷芥末。

換句話說,目標不應該是“讓開發人員看錯代碼”。應該是“讓錯誤的代碼看起來不對”。到編譯器".


查看完整回答
反對 回復 2019-06-28
  • 3 回答
  • 0 關注
  • 563 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號