小编Min*_*nty的帖子

在具体结构上键入cast vs type断言?

我是golang的新手,所以如果这个问题太天真,请道歉.环顾四周,但找不到我的基本问题的答案.

假设我有一个具体的结构和方法,如下所示.

 type MyData struct{
     field1 string
     field2 int 
     }

func(a MyData) OperatorOnString() string{
  return a.field1.(string)
}

func(a MyData) OperatorOnInt() int{
  return a.field2.(int)
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以输入强制转换而不是执行断言吗?从我到目前为止所学到的是,断言用于接口类型的数据.但在这种情况下,我有具体的类型.我还应该使用断言还是可以做类似的事情return int(a.field2).我知道这个例子很简单,但我感到困惑的一点是何时在两种转换类型之间使用.或者这里涉及一些golang惯用语?

谢谢

casting go

9
推荐指数
1
解决办法
3582
查看次数

解散反映价值

这是代码

package main

import (
    "fmt"

    "encoding/json"
    "reflect"
)

var (
    datajson []byte
    //ref mapp
)

type mapp map[string]reflect.Type

type User struct {
    Name string
    //Type map[string]reflect.Type
}

func MustJSONEncode(i interface{}) []byte {
    result, err := json.Marshal(i)
    if err != nil {
        panic(err)
    }
    return result
}
func MustJSONDecode(b []byte, i interface{}) {
    err := json.Unmarshal(b, i)
    if err != nil {
        panic(err)
    }

}
func Store(a interface{}) {
    datajson = MustJSONEncode(a)
    //fmt.Println(datajson)
}

func Get(a []byte, b interface{}) { …
Run Code Online (Sandbox Code Playgroud)

reflection json go unmarshalling

5
推荐指数
1
解决办法
3621
查看次数

标签 统计

go ×2

casting ×1

json ×1

reflection ×1

unmarshalling ×1