第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

反射函數(shù)消除了函數(shù)中 switch 和 if 語句的混合

反射函數(shù)消除了函數(shù)中 switch 和 if 語句的混合

Go
搖曳的薔薇 2022-05-18 16:43:52
這個問題主要是關(guān)于化妝品的,這段代碼完成了它的預(yù)期工作,但我希望能夠switch在兩種情況下都使用該語句,而不是混合使用ifand switch。func fieldValue(field reflect.Value) string {    format := "%v"    if stringer, ok := field.Interface().(strfmt.DateTime); ok {        return fmt.Sprintf(format, stringer.String())    }    switch field.Kind() {    case reflect.Ptr:        if field.IsNil() {            return "<nil>"        }        field = field.Elem()    }    return fmt.Sprintf(format, field.Interface())}
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經(jīng)驗 獲得超4個贊

您可以做的最接近的事情是:


func isDateTime(field reflect.Value) bool {

    _, result := field.Interface().(strfmt.DateTime)

    return result

}


func fieldValue(field reflect.Value) string {

    switch {

    case isDateTime(field):

        return field.Interface().(strfmt.DateTime).String()

    case field.Kind() == reflect.Ptr:

        if field.IsNil() {

            return "<nil>"

        }

        field = field.Elem()

        fallthrough

    default:

        return fmt.Sprintf("%v", field.Interface())

    }

}


查看完整回答
反對 回復(fù) 2022-05-18
  • 1 回答
  • 0 關(guān)注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號