繁体   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