美文网首页
go判断interface类型及类型转换

go判断interface类型及类型转换

作者: 岑吾 | 来源:发表于2021-09-12 17:33 被阅读0次

在golang中,interface{}允许接纳任意值,类似于Java中的Object类型。

可以直接用switch value.(type) 来判断类型,如:

type Test struct {
    Test string
}

func test(value interface{}) {
    switch value.(type) {
    case string:
        // 将interface转为string字符串类型
        fmt.Println("value type is string")
    case int32:
        // 将interface转为int32类型
        fmt.Println("value type is int32")
    case int64:
        // 将interface转为int64类型
        fmt.Println("value type is int64")
    case Test:
        // 将interface转为Test struct类型
        fmt.Println("value type is Test struct")
    case []int:
        // 将interface转为切片类型
        fmt.Println("value type is Test []int")
    default:
        fmt.Println("unknown")
    }
}

如果是单类型判断和转换可以用 v , ok = value.(type) 来判断和转换。

  • v:转换后的值
  • ok:是否转换成功,如果类型不对,返回false
  • value:interface{}变量
  • type:需要转换的类型,如:string、int32、int64、float64等等

如interface{}转string:

func test(value interface{}) {

    if op, ok := value.(string); ok {
        fmt.Println("value type is string:", op)
    } else {
        fmt.Println("value type is not string")
    }
}

相关文章

  • go判断interface类型及类型转换

    在golang中,interface{}允许接纳任意值,类似于Java中的Object类型。 可以直接用switc...

  • go 类型转换(interface 类型的转换)

    go 在做类型转换时,报错: cannot convert m (type interface {}) to ty...

  • Struts2之数据校验和国际化

    数据校验和类型转换 数据校验:Interface Action: 类型转换:实现字符串类型和其它类型相互转换。 国...

  • 03-数据类型转换

    数值类型转换 C语言中存在显式转换和隐式转换 Go语言中只有显式转换 Go语言中数值类型转换注意点 数值类型转换为...

  • go 类型转换

    interface{}、断言与类型转换 这篇文章里面的interface{}转换,转换示例非常清楚 (https:...

  • js 总结四 07-12

    switch typeof判断类型 类型转换

  • 2-7 Go --- 类型转换

    Go 语言没有隐式类型转换,类型转换都是显示的强制转换。明明白白写清楚需要转换的类型。 强制类型转换只能在两个类型...

  • Go语言类型转换和类型断言

    Go语言的类型转换和类型断言: 类型转换在编译期完成,包括强制转换和隐式转换 类型断言在运行时确定,包括安全类型断...

  • Go语言类型转换

    类型转换 Go语言和C语言不一样,Go语言没有隐式转换,只有显示转换 格式和C语言一样 Go语言类型转换被用于转换...

  • 类型转换和类型断言

    go语言不允许隐式类型转换,而类型转换和类型断言的本质,就是把一个类型转换到另一个类型。 一、类型转换 1.语法:...

网友评论

      本文标题:go判断interface类型及类型转换

      本文链接:https://www.haomeiwen.com/subject/kudtgltx.html