golang 类型断言

函数使用 interface{} 作为参数时,可以接收各种类型的数据。使用的时候通常需要判断具体是哪一种类型,这时候就需要类型断言。

语法

具体类型匹配

x.(string)
x.(int)
x.(bool)
x.(int32)

switch case 中匹配

    switch i.(type) {
	case string:
		fmt.Println("is string")
	case int:
		fmt.Println("is int")
    }

示例

package main

import "fmt"

func f(i interface{}) {
    v, ok := i.(string)
    if ok {
        fmt.Println("ok, string is:", v)
    }
    switch i.(type) {
        case string:
        fmt.Println(i, "is string")
        case int:
        fmt.Println(i, "is int")
    }
}

func main() {
    i := "hefs"
    f(i)
	a := 33
	f(a)
}

你可能感兴趣的:(Go/Golang,golang)