op, ok :=value.(string) fmt.Println(op, ok) case int32://将interface转为int32类型 op, ok :=value.(int32) fmt.Println(op, ok) case int64://将interface转为int64类型 op, ok :=value.(int64) fmt.Println(op, ok) case User://将interface转为User struct类型,并使用其Name对象 op, ok...
var t interface{} = &d t.(*data).x = 200 //错误,不能取t.(data)的地址 } 1. 2. 3. 4. 5. 6. 三、接口查询与类型查询 我们可将接口变量还原为原始类型,或用来判断是否实现了某个更具体的接口类型。 type data int func (d data) String() string{ return fmt.Println("data:",d) } f...
在go语言中,如果值类型是interface{}类型的话,直接赋值是无法转化的,可以通过如下方式实现: value.(type) 例如: //interface 转string var a interface{} var str string a = "3432423" str = a.(string) fmt.Println(str) //interface 转int var m interface{} var m1 int m = 43 m1 = m.(int) ...
// 假设 v 为 string或int64或float64funcDoSomething(vinterface{}){ string1 := v.(string) int1 := v.(int64) float1 := v.(float64) } 第二种不知道是什么类型 这时候就可以使用类型断言,然后再转为具体类型 复制代码 funcinterface2Type(iinterface{}){switchi.(type) {casestring: ...
value, ok := interfaceValue.(interfaceType) 特别注意:断言只能用于接口类型 基本操作 // 基本格式 x.(T) v := x.(T) v, ok := x.(T) 类型断言的必要条件是x是接口类型,非接口类型的x不能做类型断言 var i int = 10 v := i.(int) //错误例子 T可以是非接口类型,如果想断言合法,则T...
var i interface{} = 123 num, ok := i.(int) if ok { fmt.Println("转换后的整数是:", num) } else { fmt.Println("类型断言失败") } } 在这个示例中,变量i是一个接口类型,通过类型断言将其转换为int类型,并检查转换是否成功。 三、直接进行类型转换 ...
但是其实byte对应的类型是uint8,而rune对应的数据类型就是int32 所以string可以转换为四种类型 //interface转其他类型———返回值是interface,直接赋值是无法转化的//interface 转stringvarainterface{}varstr5stringa ="3432423"str5 = a.(string) fmt.Println(str5)//interface 转intvarminterface{}varm1intm =...
1.interface 转 int //定义一个interface类型的变量varinterinterface{}//赋值inter=1//定义一个int64的变量variint64//将interface类型的inter转为int64i=inter.(int64)//打印fmt.Println(i) 2.interface 转 string //定义一个interface类型的变量varinterinterface{}//赋值inter="1"//定义一个string的变量varst...
如下函数,将interface变量in转换为int: 1 2 3 4 5 6 7 8 funcformatTimeStamp(ininterface{}, layout string) (out string) { timeStr := in.(int) month, err := time.Parse(layout, string(timeStr)) iferr != nil { returntime.Now().Format(layout) ...