英文:
Google Go error - "cannot make type"
问题
在我的Go代码中,我想创建一个自定义数据类型的数组。我调用
Blocks=make(*BlockData, len(blocks))
然后我得到错误:
无法创建类型*BlockData
我的BlockData类包含了uint64、int64、float32、string、[]byte、[]string和[]*TransactionData等字段类型。最后一个是指向另一个自定义类的指针数组。
我应该怎么做来修复这个错误?
英文:
In my Go code I want to make an array of custom data type. I call
Blocks=make(*BlockData, len(blocks))
and I get error:
cannot make type *BlockData
my class BlockData contains such field types as uint64, int64, float32, string, []byte, []string and []*TransactionData. The last one is an array of pointers to another custom class of mine.
What should I do to fix this error?
答案1
得分: 14
make()
用于创建切片、映射和通道。当创建切片时,类型名称前必须有 []
。
使用以下代码创建指向 BlockData 的指针切片。
Blocks = make([]*BlockData, len(blocks))
在Go 语言规范中了解更多信息。
英文:
make()
is used to create slices, maps and channels. The type name must have []
before it when making a slice.
Use this to make a slice of pointers to BlockData.
Blocks = make([]*BlockData, len(blocks))
Read more in the Go language specification.
答案2
得分: 1
Making slices, maps and channels
例如,
package main
import "fmt"
type BlockData struct{}
func main() {
blocks := 4
Blocks := make([]*BlockData, blocks)
fmt.Println(len(Blocks), Blocks)
}
输出:
4 [<nil> <nil> <nil> <nil>]
英文:
Making slices, maps and channels
For example,
package main
import "fmt"
type BlockData struct{}
func main() {
blocks := 4
Blocks := make([]*BlockData, blocks)
fmt.Println(len(Blocks), Blocks)
}
Output:
4 [<nil> <nil> <nil> <nil>]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论