golang变量转string

异常捕获报错:interface conversion: interface {} is nil, not string。我想把它转成string记录到日志中,可是我reflect.TypeOf打印出来的类型是:*runtime.TypeAssertionError。有没有大哥直接怎么取出这里面的值,把它转成string

阅读 8.6k
4 个回答

你在操作的是一个指针(pointer)。你应该用下面的代码来获取数据:

user = i.(*User)
return *user

或者换一种形式:

ptr = reflect.New(reflect.TypeOf(data)) // create new pointer

 obj := ptr.Interface()

最简单的方式,可以通过 fmt.Sprintf,比如你上面的例子,如下:

func main() {
    a := 123
    as := fmt.Sprintf("%v", a)
}

不止于 int,其他的类型都可以通过这种方式转化成 string 类型。

新手上路,请多包涵
你的字符串类型 := fmt.Sprintf("%s", "你要转换的类型")
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏