golang中.([]byte)和 []byte()

.([]byte)

value, ok := var.([]byte)

这是标准的golang类型断言(Type Assertion)。这里的val一般是一个interface{}类型的变量。这句的字面含义是“我认为val这个interface{}类型变量的underlying type是[]byte,如果是,请将其值赋给变量value,并且ok =true,如果不是ok = false。

[]byte() 

value, ok := []byte(var) 

这是标准的golang显式转型,将变量var转换成[]byte类型,并赋值给value

举个栗子

package main

import "fmt"

func main() {
    temp := map[string]string{
    "vw":"大众",
    "BMW":"宝马",
    }
    var glt interface {}
    value , ok := temp["vw"]
    glt = "volkswagen"
    if ok && "大众" == value {
      temp["vw"],_ = glt.(string) 
    }
    fmt.Println(temp)
}

猜你喜欢

转载自blog.csdn.net/u012460314/article/details/103302207