AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

函數設計心得:盡量避免布爾型參數

來源: 責編: 時間:2023-10-27 09:15:08 311觀看
導讀通常來說,我認為在設計一個函數原型的時候,應該盡量避免使用布爾類型的參數,除非函數名稱能十分清楚的將這個參數的意思表達出來。我并沒有想教你做事,但是請聽我細說先舉兩個正面的例子,有一個 API 函數 EnableWindow,它用

通常來說,我認為在設計一個函數原型的時候,應該盡量避免使用布爾類型的參數,除非函數名稱能十分清楚的將這個參數的意思表達出來。pSw28資訊網——每日最新資訊28at.com

我并沒有想教你做事,但是請聽我細說

先舉兩個正面的例子,有一個 API 函數 EnableWindow,它用來啟用或禁用一個窗口。它的第二個參數是一個布爾型參數,如果此參數傳入 TRUE,則調用此函數會將指定的窗口啟用,傳入 FALSE,則禁用窗口。pSw28資訊網——每日最新資訊28at.com

另外一個是 ShowScrollBar 的最后一個參數,它也是一個布爾型的。它的含義也十分明顯,如果傳入 TRUE,則表明將會顯示滾動條,如果傳入 FALSE,則會將滾動條隱藏。pSw28資訊網——每日最新資訊28at.com

這兩個例子中,布爾型參數的含義都清楚的體現在了函數的名稱中,是一個良好設計。pSw28資訊網——每日最新資訊28at.com

但下面的例子就沒那么顯而易見了。pSw28資訊網——每日最新資訊28at.com

我們看看這個函數 CreateEvent,它的第一個參數是布爾型的,但如果不查看函數的文檔,則開發者很難想象這個參數具體的作用是什么??戳宋臋n之后,才會明白:這個參數用來控制是否創建一個自動重置的事件對象。更進一步地,到底是傳入 TRUE 還是 FALSE 來創建一個自動重置對象呢?每次當我調用這個函數的時候,我都只能老老實實的翻開函數文檔認真閱讀,才知道具體應該傳入什么布爾值。pSw28資訊網——每日最新資訊28at.com

我認為,這個參數應該被設計為一個 DWORD 或者,如果更優雅一些的話,應該設計為一個枚舉,類似于:EVENTTYPE_AUTORESET 和 EVENTTYPE_MANUALRESET,這樣就一眼可以看出來參數的含義了。pSw28資訊網——每日最新資訊28at.com

更加糟糕的是,CreateEvent這個函數中,總共有兩個布爾型參數,你需要弄明白這些布爾值的含義,還得小心不要記錯順序了,這可太糟了。pSw28資訊網——每日最新資訊28at.com

另外一個反面例子是:StreamReader(Stream, bool) 這個函數,我想問問聰明的你,如果先不看函數文檔的話,你能猜到它的第二個參數是什么意思嗎?pSw28資訊網——每日最新資訊28at.com

總結

以上只是我的個人看法,怎么設計你的函數害得你自己決定。
但,為什么不讓生活變得更美好一些呢?
幫助他人(你代碼的閱讀者),善待自己(三個月后的自己)。pSw28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-15324-0.html函數設計心得:盡量避免布爾型參數

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 認識一些常見的Spring Boot內置Health Indicator

下一篇: 深入理解并發編程藝術之JVM內存模型

標簽:
  • 熱門焦點
  • K60至尊版狂暴引擎2.0加持:超177萬跑分斬獲性能第一

    Redmi的后性能時代戰略發布會今天下午如期舉辦,在本次發布會上,Redmi公布了多項關于和聯發科的深度合作,以及新機K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 中興AX5400Pro+上手體驗:再升級 雙2.5G網口+USB 3.0這次全都有

    2021年11月的時候,中興先后發布了兩款路由器產品,中興AX5400和中興AX5400 Pro,從產品命名上就不難看出這是隸屬于同一系列的,但在外觀設計上這兩款產品可以說是完全沒一點關系
  • 6月安卓手機性價比榜:Note 12 Turbo斷層式碾壓

    6月份有一個618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產品也出現了歷史低價,那么各個價位段的產品性價比
  • Raft算法:保障分布式系統共識的穩健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復制、可冗余、可容錯”)的首字母縮寫。Raft算法是一種用于在分布式系統
  • 三分鐘白話RocketMQ系列—— 如何發送消息

    我們知道RocketMQ主要分為消息 生產、存儲(消息堆積)、消費 三大塊領域。那接下來,我們白話一下,RocketMQ是如何發送消息的,揭秘消息生產全過程。注意,如果白話中不小心提到相關代
  • 共享單車的故事講到哪了?

    來源丨海克財經與共享充電寶相差不多,共享單車已很久沒有被國內熱點新聞關照到了。除了一再漲價和用戶直呼用不起了。近日多家媒體再發報道稱,成都、天津、鄭州等地多個共享單
  • 網紅炒股不為了賺錢,那就是耍流氓!

    來源:首席商業評論6月26日高調宣布入市,網絡名嘴大v胡錫進居然進軍了股市。在一次財經媒體峰會上,幾個財經圈媒體大佬就“胡錫進炒股是否知道認真報道”展開討論。有
  • 微軟發布Windows 11新版 引入全新任務欄狀態

    近日,微軟發布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務欄等,系統更流暢了。更新中,Windows 11加入了專門針對平板優化的任務欄
  • 中關村論壇11月25日開幕,15位諾獎級大咖將發表演講

    11月18日,記者從2022中關村論壇新聞發布會上獲悉,中關村論壇將于11月25至30日在京舉行。本屆中關村論壇由科學技術部、國家發展改革委、工業和信息化部、國務
Top