布林(boolean)類函數命名原則

未分類
其實這東西困擾我很久了 舉個例子 假設我們要寫一個檢查會員是否登入的 function 會怎麼命名? 有的人會寫成 check_user_login() 這函數名稱是一個動作 "檢查會員是否登入" 好 所以我們會 return 一個結果 讓呼叫他的人知道 這個人是登入 還是沒登入 所以我們應該收到 true 還是 false 表示他有登入? 正常來說啦 應該都會覺得 true 是有登入 false 是沒登入 問題是有更多時候 函數的名字取的很曖昧 根本看不出來回傳值的 true/false 是實際上的哪個狀態 例如 check_user_vip() 所以 true 是 vip 還是 false 是 vip? 我覺得比較好的作法是 函數命名除了包含動作 還需要包含明確的狀態 例如 check_user_login() 應該改成 check_user_is_login() 那很明顯 如果是有 login 那就跟函數敘述邏輯正向 應該就會回傳 true 如果拿到 false 就是沒登入 不然有時候 我自己寫的 function 時間久了 自己都搞不清楚拿到 true/false 是哪一種情形 這是一種很細微的習慣 但可能沒人遵守一個容易理解的流程/命名方法