这个问题主要是关于化妆品的,这段代码完成了它的预期工作,但我希望能够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条经验 获得超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 关注
- 107 浏览
添加回答
举报
0/150
提交
取消