第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

go:接口類型斷言

go:接口類型斷言

Go
眼眸繁星 2021-12-13 18:30:45
我在制作結(jié)構(gòu)的動(dòng)態(tài)模型時(shí)遇到問題。我的意思是我想斷言或強(qiáng)制轉(zhuǎn)換,或者只是根據(jù)傳入的數(shù)據(jù)支柱更改結(jié)構(gòu)的類型。如果sourceName變量是type_x,比類型deserializedData應(yīng)該是type_x,如果type_y,比type_y。如何為此deserializedData動(dòng)態(tài)設(shè)置變量?我的代碼中有這部分:    ....   var cacheData []byte    var deserializedData models.NoaggModel    cache_err := cache.Get(string(string(sourceName) + "_" + string(t.Date)), &cacheData);            if cache_err != nil {                fmt.Println("cache_error: ", cache_err)                panic("the cache is empty")            }            err2 := json.Unmarshal([]byte(cacheData), &deserializedData)            if err2 == nil {                fmt.Println("deserialized data: " + string(sourceName), deserializedData)            }            for _, chart := range charts {                w.Name = chart.Name            if err2 == nil {                w.Data = countDataByName(sourceName, deserializedData, t.Request.Filters, string(chart.Name))            }            out <- w        }....如何修改它,避免models.Noagg Model以嚴(yán)格的方式設(shè)置類型?
查看完整描述

1 回答

?
桃花長相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

可以使用反射包在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建類型的實(shí)例。您可以使用地圖來存儲您應(yīng)該能夠創(chuàng)建的不同類型:


例子:


package main


import (

    "fmt"

    "reflect"

)


type Foo struct {

    Foo string

}


type Bar struct {

    Bar int

}


func main() {

    var sourceTypes = map[string]reflect.Type{

        "foo": reflect.TypeOf(Foo{}),

        "bar": reflect.TypeOf(Bar{}),

    }


    sourceName := "foo"

    var deserializedData interface{}


    deserializedData = reflect.New(sourceTypes[sourceName]).Interface()

    fmt.Printf("%#v", deserializedData)

}

輸出:


&main.Foo{Foo:""}


游樂場: http : //play.golang.org/p/qeDA4cu5et


查看完整回答
反對 回復(fù) 2021-12-13
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號