18/03/10 18:20:49.51 ysTMLqRd.net
例えば
func ToString(any interface{}) string {
if v, ok := any.(Stringer); ok {
return v.String()
}
switch v := any.(type) {
case int:
return strconv.Itoa(v)
case float:
return strconv.Ftoa(v, 'g', -1)
}
return "???"
}
上記コードはこうできるようにして欲しい
func ToString(any (Stringer | int | float)) string {
if v, ok := any.(Stringer); ok {
return v.String()
}
switch v := any.(type) {
case int:
return strconv.Itoa(v)
case float:
return strconv.Ftoa(v, 'g', -1)
}
}
引数にinterface{} があるのはやっぱりJavaとかで引数にObject型が来るのと同義だと思うわ。