go - 如何创建由另一个组成的结构

标签 go

<分区>

我有一个这样的结构:

type Docs struct {
    Methods []string
    Route string
}

然后我从另一个文件导入它,例如:

import tc "huru/type-creator"

然后像这样使用它:

type DocsLocal struct {
    tc.Docs
}

我很确定 tc.Docs 只是 DocsLocal 中的一个字段,所以这是一个组合的情况,对吗?

如果我想创建 DocsLocal 的新实例,我试试这个:

d:= DocsLocal{}

但是如何传入Methods和Route参数呢?如果我这样做:

methods:= []string{"foo"}
r:="biscuit"
d:= DocsLocal{methods, r}

我得到一个错误:

Cannot use methods (type []string) as type tc.Docs more

那么这里使用的正确语法是什么?

最佳答案

你可以做到

d := DocsLocal{tc.Docs{[]string{"foo"}, "biscuit"}}

d := DocsLocal{Docs: tc.Docs{[]string{"foo"}, "biscuit"}}

Go Playground

关于go - 如何创建由另一个组成的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53585451/

相关文章:

go - Go 中是否有等效于文件的 ReadLine?

parsing - Go - 包 ast : find package in file

go - 发生错误时如何停止goroutine

go - 在编译时检查 go 表达式的可用性

go - 限制来自 channel 的已处理消息的数量

ssh - 在 golang 的 ssh 客户端中创建一个文件

go - 如何确认 $GOPATH 和 $GOROOT 设置正确?

go - 在同一个 goroutines 中创建的 goroutines 是否总是按顺序执行?

go - 如何在 mgo 中构造 $or 查询

重命名后的golang相关包导入