pointers - 在 Golang 中初始化 Struct 类型的 Slice
问题描述
我在 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 = new List(Of mystruct))
问候。