這個問題主要是關(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())
}
}
- 1 回答
- 0 關(guān)注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消
