I have this code which works but has a horrible hack: ... nullable := false kind := field.Kind() // field's type is reflect.Value if kind == reflect.Ptr { // FIXME How can I improve upon this truly awful hack? switch field.Type().String() { case "*int", "*int8", "*uint8", "*int16", "*uint16", "*int32", "*uint32", "*int64", "*uint64": kind = reflect.Int case "*float32", "*float64": kind = reflect.Float64 } nullable = true } switch kind { case reflect.Bool: out.WriteString("bool") case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: out.WriteString("int") case reflect.Float32, reflect.Float64: out.WriteString("real") ... if nullable { out.WriteByte('?') } What is the correct way to achieve what I'm aiming for?
-- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/5ff4b6f6-405c-4ca5-9299-7c15e1d5c424n%40googlegroups.com.