在 Go 中将 int slice 转换为自定义 int slice 指针类型的函数

Function to Convert int slice to Custom int slice pointer type in Go

提问人:darthpool 提问时间:8/16/2023 最后编辑:darthpool 更新时间:8/16/2023 访问量:43

问:

我想将 int 切片作为构造函数的输入,并返回指向原始列表的指针,类型转换为我的外部自定义 type()。type IntList []int

我可以这样做:

type IntList []int

func NewIntListPtr(ints []int) *IntList {
    x := IntList(ints)
    return &x
}

但我不能这样做:

type IntList []int

func NewIntListPtr(ints []int) *IntList {
    return &ints
}

// or this for that matter:

func NewIntListPtr(ints []int) *IntList {
    return &(IntList(ints))
}

// or this

func NewIntListPtr(ints []int) *IntList {
    return &IntList(*ints)
}

// or this

func NewIntListPtr(ints *[]int) *IntList {
    return &(IntList(*ints))
}

有没有一句话可以做到这一点?

go cast 类型转换 切片

评论


答:

5赞 blackgreen 8/16/2023 #1

你这样做是这样的:

func NewIntListPtr(ints []int) *IntList {
    return (*IntList)(&ints)
}