簡體   English   中英

初始化匿名結構中的字段

[英]Initializing a field inside an anonymous struct

鑒於這個匿名結構:

var myMap struct {
  list       map[string]string
  someStuff *some.Object
}

我可以在一個聲明中初始化listsomeStuff嗎?

這不起作用:

var myMap struct {
  list       map[string]string = make(map[string]string)
  someStuff *some.Object = &some.Object{}
}

干得好:

var myMap = struct {
  list map[string]string
  str string
}{
  list: map[string]string{"hello":"string"},
  str: "myString",
}

你也可以這樣做:

var myMap = struct {
  list map[string]string
  str string
}{map[string]string{"hello":"string"}, "myString"}

一個工作的例子: 去PlayGround

因此,您聲明您的結構,然后在花括號中啟動它。 (我從這個古老的談話中學到了這一點 。)

是的,你可以這樣做。 看看這個例子:

package main

import "fmt"

func main() {
    myMap := struct {
        list       map[string]string
        someStuff interface{}
    }{
        list: make(map[string]string),
        someStuff: 2,
    }

    fmt.Println(myMap)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM