我在Golang中有以下结构
type mystruct struct {
Name string
Power int
}我的目的是编写一个函数,它接受一个*mystuct类型的切片作为输入,并返回一个int类型的切片,其中包含从输入切片获取的"Power“属性。
我的代码如下:
package main
import (
"fmt"
)
func main() {
obj := make([]*mystruct, 15)
for i, s := range obj {
s.Power = i
}
fmt.Println(extractpowers(obj))
}
func extractpowers(obj []*mystruct) []int {
powers := make([]int, len(obj))
for i, s := range obj {
powers[i] = s.Power
}
return powers
} 我的问题是,obj := make([]*mystruct, 15)创建了一个15 *mystruc指针初始化为nil的切片;这会导致for循环中的代码引发“无效内存或nil指针取消引用”类型的死机。
我的问题是,初始化切片的正确和最快的方法是什么;(相当于.net中的var lst =(mystruct的)新列表)
致以问候。
发布于 2019-10-01 21:48:07
https://stackoverflow.com/questions/58186111
复制相似问题