gpt4 book ai didi

go - 在 golang 中将 []*string 转换为 []string

转载 作者:行者123 更新时间:2023-12-05 09:31:07 25 4
gpt4 key购买 nike

我是新来的。我有一个接受 []string 作为输入的函数,但是我必须传递的输入是 []*string,我该如何转换 [] *string[]string。有什么方法可以使用任何实用程序对其进行转换,还是我必须使用 for 循环对其进行迭代并构造一个数组?

Playground 链接 https://play.golang.org/p/_s2g7-IfGAy

package main

import (
"fmt"
)

func main() {
//Declaring an array of []*string and assigning value to it
var a [1]*string
var strPointer = new(string)
*strPointer = "1"
a[0] = strPointer
fmt.Println(*a[0])
// accept(a) this wont work

//Converting to array []string
var b []string
for i := range a {
b = append(b, *a[i])
}
accept(b)// this works

fmt.Println(b)

}

func accept(param []string) {
fmt.Println("Works!")
}

最佳答案

您的 accept(param []string) 需要一段字符串。

var a [1]*string 这声明了长度为 1 的 Go 数组。所以它不是 slice 。

您可以使用它来声明一个空的字符串指针片段。 var a []*string

并且您必须遍历数组并使用指针元素的值创建一个 slice ,然后使用该 slice 调用 accept

将 []*string 转换为 []string 的示例函数

func stringer(str []*string) []string{
var strs []string
for _, s := range str {
if s == nil {
strs = append(strs, "")
continue
}
strs = append(strs, *s)
}

return strs
}

run here

关于go - 在 golang 中将 []*string 转换为 []string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69105260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com