Go 结构初始化的嵌套数组:如果两个结构的构造函数都可用,该怎么办?
刚来的。我有两种结构类型(称为内部结构类型和外部结构类型),并且每个结构类型都有我想要使用的构造函数。外部结构具有内部结构的二维数组。如何在外部结构的构造函数中使用内部类型的构造函数来初始化内部结构的数组Go 结构初始化的嵌套数组:如果两个结构的构造函数都可用,该怎么办?,go,struct,Go,Struct,刚来的。我有两种结构类型(称为内部结构类型和外部结构类型),并且每个结构类型都有我想要使用的构造函数。外部结构具有内部结构的二维数组。如何在外部结构的构造函数中使用内部类型的构造函数来初始化内部结构的数组 类型内部结构{ val int } func新内部(val int)*内部{ i:=新的(内部) i、 瓦尔=瓦尔 返回i } 类型外部结构{ 成员[][]内部 行整数 上校 } func newOuter(行整数、列整数)*外部{ o:=新的(外部) o、 行=行 o、 col=col /
类型内部结构{
val int
}
func新内部(val int)*内部{
i:=新的(内部)
i、 瓦尔=瓦尔
返回i
}
类型外部结构{
成员[][]内部
行整数
上校
}
func newOuter(行整数、列整数)*外部{
o:=新的(外部)
o、 行=行
o、 col=col
//如何初始化大小为[row][col]和[col]的二维数组
//使用内部的构造函数?
返回o
}
您可以使用make
然后迭代矩阵以初始化它
defaultInner := newInner(100)
o.members = make([][]Inner, o.row)
for i := 0; i < o.row; i++ {
o.members[i] = make([]Inner, o.col)
for j := 0; j < o.col; j++ {
o.members[i][j] = *defaultInner
}
}
defaultInner:=newInner(100)
o、 成员=制造([]内部,o.row)
对于i:=0;i
您可以使用make
然后迭代矩阵以初始化它
defaultInner := newInner(100)
o.members = make([][]Inner, o.row)
for i := 0; i < o.row; i++ {
o.members[i] = make([]Inner, o.col)
for j := 0; j < o.col; j++ {
o.members[i][j] = *defaultInner
}
}
defaultInner:=newInner(100)
o、 成员=制造([]内部,o.row)
对于i:=0;i
func newOuter(行内、列内)*Outer{
o:=新的(外部)
o、 行=行
o、 col=col
//如何初始化大小为[row][col]和[col]的二维数组
//使用内部的构造函数?。。。
//
//这里有一个方法:
o、 成员=制造([]内部,行)
对于i:=0;i|
func newOuter(行内、列内)*Outer{
o:=新的(外部)
o、 行=行
o、 col=col
//如何初始化大小为[row][col]和[col]的二维数组
//使用内部的构造函数?。。。
//
//这里有一个方法:
o、 成员=制造([]内部,行)
对于i:=0;i|
您有反向声明的外部
字段,例如,应该有成员[]内部
非内部[]成员
,以及行内
非行内
。谢谢,现在编辑它们,您还可以构建[row][col code>大小为行内
的二维切片,但是,如果您的计划是使用构造函数,您会将什么传递给newInner
构造函数newOuter
不接受任何自然传递给newInner
构造函数的val
参数。您没有按照我建议的更正进行编辑。还有其他编译错误。如果您可以发布编译的代码,这总是很有帮助的。我计划将所有“val”初始化为100。您已经向后声明了外部
字段,例如,应该有成员[][]内部
非内部[][]成员
,以及行内
非行内
。谢谢,现在编辑它们,您也可以构建[行][col]
大小为internal
s的二维切片,但是如果您计划使用构造函数,您会将什么val
传递给newinternal
构造函数?newOuter
不接受任何自然传递给newinternal
构造函数的val
参数。您没有按照我建议的co进行编辑更正。还有其他编译错误。如果您可以发布编译的代码,这总是很有帮助的。我计划将所有“val”初始化为100谢谢,但是矩阵的所有元素是否都指向同一个内部变量?我这样问是因为成员[][]的所有元素初始化为defaultInner他们被初始化为*defaultInner
,表示它的值而不是地址。@Ron回答中还有什么需要澄清的吗?谢谢,但是矩阵的所有元素都指向同一个内部变量吗?我这样问是因为成员[][]的所有元素初始化为defaultInner他们被初始化为*defaultInner
,表示它的值而不是地址。@Ron答案中还有什么需要澄清的吗?