简洁地返回一个指向Go中文字界面的指针

时间:2016-07-20 23:37:53

标签: go

是否有更简洁的将文字投射到空接口?很多相关的社区问题都是关于将字体强制转换为文字但反之亦然。

寻找表格的内容:

func pointerInterfaceOf(in interface{}) *interface{} {
    return &in
}

我试过了

&reflect.ValueOf(in).Interface() // Compiler error

但这是一个编译器错误。

2 个答案:

答案 0 :(得分:2)

如果反射值为*interface{},请使用:

 return reflect.Value(in).Interface().(*interface{})

如果反射值不是指向接口的指针,则最短的代码为:

 x := reflect.ValueOf(in).Interface()
 return &x

应用程序无法使用&reflect.ValueOf(in).Interface(),因为函数的返回值不是addressable

答案 1 :(得分:0)

如果您想将某些内容转换为interface{},只需使用常规的转换语法:

interface{}(whatever)