亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在 Golang 中賦值

在 Golang 中賦值

Go
慕哥9229398 2021-09-20 21:04:55
我創建了一個類型的 varvar RespData   []ResponseDataResponseData 是一個如下結構:type ResponseData struct {    DataType       string          Component      string          ParameterName  string          ParameterValue string          TableValue     *[]Rows }type TabRow struct {    ColName     string     ColValue    string     ColDataType string }type Rows *[]TabRow我想填充TableValue類型*[]Rows。您能否通過在TableValue.
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

TableValue是指向[]Rows(的切片Rows)的指針。


Rows是指向 a []TabRow(的切片TabRow)的指針。所以你可以Rows用切片文字創建一個值,并獲取它的地址,&這樣你就有一個指向[]TabRow- 這將是類型Rows。


并且您可以[]Rows通過使用另一個切片文字(創建 a []Rows)獲取指向的指針,并獲取其地址,該地址*[]Rows的類型為 ,TableValue因此您可以直接將其分配給ResponseData.TableValue。


所以你可以這樣做:


var tv1 Rows = &[]TabRow{TabRow{"name11", "value11", "type11"},

    TabRow{"name12", "value12", "type12"}}

var tv2 Rows = &[]TabRow{TabRow{"name21", "value21", "type21"},

    TabRow{"name22", "value22", "type22"}}


var TableValue *[]Rows = &[]Rows{tv1, tv2}


fmt.Println(TableValue)

for _, v := range *TableValue {

    fmt.Println(v)

}

輸出:


&[0x10436180 0x10436190]

&[{name11 value11 type11} {name12 value12 type12}]

&[{name21 value21 type21} {name22 value22 type22}]

在Go Playground上試一試。


在指定元素(類型TabRow)的切片文字中,您甚至可以省略類型,它變成了這樣:


var tv1 Rows = &[]TabRow{{"name11", "value11", "type11"},

    {"name12", "value12", "type12"}}

var tv2 Rows = &[]TabRow{{"name21", "value21", "type21"},

    {"name22", "value22", "type22"}}

如果您使用Short variable declaration,您甚至可以進一步縮短它(在Playground上嘗試):


tv1 := &[]TabRow{{"name11", "value11", "type11"}, {"name12", "value12", "type12"}}

tv2 := &[]TabRow{{"name21", "value21", "type21"}, {"name22", "value22", "type22"}}

TableValue := &[]Rows{tv1, tv2}


查看完整回答
反對 回復 2021-09-20
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

func main() {


    rowsList := []TabRow{

        TabRow{

            ColName:     "col1",

            ColValue:    "col1v",

            ColDataType: "string",

        },

        TabRow{

            ColName:     "col2",

            ColValue:    "col2v",

            ColDataType: "int",

        }}


    rows := Rows(&rowsList)


    resp := ResponseData{

        DataType:       "json",

        Component:      "backend",

        ParameterName:  "test",

        ParameterValue: "cases",

        TableValue:     &rows,

    }


    fmt.Printf("%v", resp)

}


查看完整回答
反對 回復 2021-09-20
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

您可以這樣簡化您的結構:


type ResponseData struct {

    DataType       string      

    Component      string      

    ParameterName  string      

    ParameterValue string      

    TableValue     []*TabRow 

}

type TabRow struct {

    ColName     string 

    ColValue    string 

    ColDataType string 

}

然后你可以填充它:


resp := ResponseData {

    DataType: "",

    Component: "",

    ParameterName: "",

    ParameterValue: "",

    TableValue: []*TabRow{

      &TabRow{"","",""},

      &TabRow{"","",""},

      &TabRow{"","",""},

    },

}

并添加一個新的 TabRow:


resp.TableValue = append(resp.TableValue, &TabRow{"","",""})


查看完整回答
反對 回復 2021-09-20
  • 3 回答
  • 0 關注
  • 246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號