The Go Blog

类型检查

bantana and
24 November 2017

使用 string formating

func typeof(v interface{}) string {
    return fmt.Sprintf("%T", v)
}

使用 reflect package

func typeof(v interface{}) string {
    return reflect.TypeOf(v).String()
}

使用 type assertions

func typeof(v interface{}) string {
    switch t := v.(type) {
    case int:
        return "int"
    case float64:
        return "float64"
    // ... etc.
    default:
        _ = t
        return "unknow"
    }
}

Related articles