以下是转换为String类型的案例: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 cast.ToString("mayonegg")// "mayonegg"cast.ToString(8)// "8"cast.ToString(8.31)// "8.31"cast.ToString([]byte("one time"))// "one time"cast.ToString(nil)// ""varfoointerface{}="one more time"cast.ToS...
阅读cast 源码,我们可以发现,cast.ToString() 底层实现是调用 cast.ToStringE(),只不过是将 cast.ToStringE() 返回的错误忽略了。 源码: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 // ToString casts an interface to a string type. func ToString(i interface{}) string { v, _ := ToStringE...
ToInt()函数用于将非 int类型数据转换为对应的int表示,具体的函数签名如下。 示例代码如下: cast.ToInt(8)// 8cast.ToInt(8.31)// 8cast.ToInt("8")// 8cast.ToInt(true)// 1cast.ToInt(false)// 0vareightinterface{} =8cast.ToInt(eight)// 8cast.ToInt(nil)// 0 __EOF__...
阅读cast 源码,我们可以发现,cast.ToString() 底层实现是调用 cast.ToStringE(),只不过是将 cast.ToStringE() 返回的错误忽略了。 源码: 复制 func ToString(i interface{}) string {v, _ := ToStringE(i)returnv} 1. 2. 3. 4. 我们可以使用 cast.ToxxxE() 函数,判定转换后得到的类型零值是否是错误。
str, ok := target.(string) 类型断言的缺点很明显,如果不接收第二个返回值,会有 panic 风险;如果接收第二个参数,则略显繁琐。 到了第二个ToInt,cast 的优势就更明显了,传统方式下,一个interface{}类型的"123"如果要转换成int,必须先类型断言为string,再使用strconv转换成int,代码就不写了,想象一下就知道...
package main import ( "encoding/json" "fmt" "reflect" "strconv" ) // AnyToStr 将任意类型转换为字符串 func AnyToStr(i interface{}) (string, error) { if i == nil { return "", nil } v := reflect.ValueOf(i) if v.Kind() == reflect.Ptr { if v.IsNil() { return "", nil ...
func Unmarshal(data []byte, v interface{}) error 1. 需求:将 json 字符串转为结构体 1)预先定义json对应的结构体类型; 2)调用 json.Unmarshl func main() { // 这里反引号表示不转意,即为string类型 resp := `{"code":0,"message":"success","grades":[{"gradeClass":"一年级","Score":{"...
这里实现了一个任意类型数据转string的的方法: // AnyToStr 任意类型数据转stringfuncAnyToStr(iinterface{})(string,error){ifi==nil{return"",nil}v:=reflect.ValueOf(i)ifv.Kind()==reflect.Ptr{ifv.IsNil(){return"",nil}v=v.Elem()}switchv.Kind(){casereflect.String:returnv.String(),nilcaseref...
fmt.Println(cast.ToInt(str))// 输出:1231230 我们创建了一个interface{}类型的变量target,传统方式下如果要将一个interface{}转化为string,需要使用类型断言: vartargetinterface{} ="123"str := target.(string)// orstr, ok := target.(string) ...
// ToString casts an interface to a string type.func ToString(i interface{}) string {v, _ := ToStringE(i)return v} 我们可以使用cast.ToxxxE()函数,判定转换后得到的类型零值是否是错误。 03 总结 本文我们介绍极简类型转换三方库cast,它可以极大提升我们的开发效率,并且使我们的代码更加优雅,帮助我们...