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

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

在返回的 then 子句之后使用或不使用 else 子句

在返回的 then 子句之后使用或不使用 else 子句

Go
精慕HU 2022-06-27 16:58:15
是否有任何官方 Go 風格指南描述是否將代碼放在返回 else 子句的 then 子句之后?換句話說,以下兩個選項中的一個或另一個是規范的 Go 嗎?使用其他:func IsLeapYear(year int) bool {  if year%400 == 0 {    return true  } else if year%100 == 0 {    return false  } else if year%4 == 0 {    return true  } else {    return false  }}不要使用其他:func IsLeapYear(year int) bool {  if year%400 == 0 {    return true  }  if year%100 == 0 {    return false  }  if year%4 == 0 {    return true  }  return false}
查看完整描述

1 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

有些 linter 對如何編寫不同的條件句有意見。條件句中最重要的兩個是golint和gocritic。


去除else

    if cond1 {

        return true

    } else {

        return false

    }

golint建議放棄else:


    if cond1 {

        return true

    }

    return false

switch改為使用

func IsLeapYear(year int) bool {

  if year%400 == 0 {

    return true

  } else if year%100 == 0 {

    return false

  } else if year%4 == 0 {

    return true

  } else {

    return false

  }

}

在這種情況下,gocritic會告訴你使用 switch 語句。AFAIK 只要if .. else if .. else聲明中有 3 個或更多案例,它就會這樣做。


func IsLeapYear(year int) bool {

    switch {

    case year%400 == 0:

        return true

    case year%100 == 0:

        return false

    case year%4 == 0:

        return true

    }

    return false

}

Aswitch帶一箱

    switch {

    case year%400 == 0:

        return true

    }

這里gocritic突然讓我們知道它更喜歡一個簡單的if聲明:


    if year%400 == 0 {

        return true

    }


查看完整回答
反對 回復 2022-06-27
  • 1 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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