猿问

如何将泰拉form字符串集的字符串表示形式转换为字符串切片

我有一个地球测试,我从这样的地球形态中获得输出。地球形式输出的 ,它是一组字符串。s := "[a b]"value = toset([resource.name])


显然返回字符串。我需要迭代以执行进一步的验证。fmt.Printf("%T", s)


我尝试了下面的方法,但错误!


var v interface{}

if err := json.Unmarshal([]byte(s), &v); err != nil {

    fmt.Println(err)

}

我当前要转换为切片的实现是:


s := "[a b]"

s1 := strings.Fields(strings.Trim(s, "[]"))

for _, v:= range s1 {

    fmt.Println("v -> " + v)

}

寻找当前方法的建议或我应该考虑的转换为arr /切片的替代方法。感谢任何输入。谢谢。


噜噜哒
浏览 81回答 2
2回答

长风秋雁

实际上,您当前的实现似乎很好。您不能使用 JSON 取消封口,因为 JSON 字符串必须括在双引号中。"而是字符串。字段就是这样做的,它会在一个或多个匹配的字符上拆分字符串,即 、 、 。和。unicode.IsSpace\t\n\v\f\r 如果地形图形式发送一个空集,如 中所述,Moeover 也有效:[]返回 [...] 如果 s 仅包含空格,则返回一个空片。...这包括完全空旷的情况。s""如果您需要对此进行其他控制,则可以使用字符串。FieldsFunc,它接受类型的函数,因此您可以自己确定构成“空间”的内容。但是,由于您的输入字符串来自terraform,我想它会表现得足够好。func(rune) bool可能有第三方包已经实现了此功能,但除非您的程序已经导入了它们,否则我认为基于标准库的本机解决方案始终是首选。unicode.IsSpace实际上还包括更高的符文和,在这种情况下调用0x850xA0strings.FieldsFieldsFunc(s, unicode.IsSpace)

拉丁的传说

package mainimport (    "fmt"    "strings")func main() {    src := "[a b]"    dst := strings.Split(src[1:len(src)-1], " ")    fmt.Println(dst)}https://play.golang.org/p/KVY4r_8RWv6
随时随地看视频慕课网APP

相关分类

Go
我要回答