go - 当变量已经声明时,为什么我必须传递类型来生成函数?
问题描述
我想使用匿名结构做某事。
var users []struct{
Name string `json:"name,omitempty"`
Age int
}
我必须再次编写类型来设置值
users = make([]struct{
Name string `json:"name,omitempty"`
Age int
}, 0, 10)
如果我坚持使用匿名结构,有没有办法让它更体面?
(如果没有,我想知道为什么 golang 设计会产生这样的功能......)
解决方案
匿名结构很方便一次性使用。
如果你不止一次使用它,那么定义一个命名的结构类型。
如果只在单个函数中使用它,则可以在该特定函数的范围内定义类型,因此很明显它不能在其他地方使用:
func myfunc() {
type MyType struct {
Name string
}
m := MyType{Name: "Hello, World!"} // this type can only be used within this func
fmt.Println(m)
}
推荐阅读
- javascript - 将js变量数据保存在txt中
- android - 我想添加圆形图像按钮的阴影,但无法做到
- c# - 无法加载文件或程序集 System.Web.MVC,版本=4.0.0.0,Web 发布活动
- typescript - 打字稿:是否可以使用函数声明一个类
- react-native - React Native 无法从 localhost 获得响应
- graphql - Gatsby-Source-Facebook-Graphql 插件
- c - 链表删除节点,简单链表
- flutter - 如何获取 Flutter 框架
- html - 将 CSS 样式应用于子菜单
- r - R 中涉及加载 gsl 包的错误