我是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惯用语?
谢谢
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)