为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
噜噜哒 2022-10-04 16:36:28
我有一个地球测试,我从这样的地球形态中获得输出。地球形式输出的 ,它是一组字符串。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 /切片的替代方法。感谢任何输入。谢谢。
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

实际上,您当前的实现似乎很好。

您不能使用 JSON 取消封口,因为 JSON 字符串必须括在双引号中。"

而是字符串。字段就是这样做的,它会在一个或多个匹配的字符上拆分字符串,即 、 、 。和。unicode.IsSpace\t\n\v\f\r

如果地形图形式发送一个空集,如 中所述,Moeover 也有效:[]

返回 [...] 如果 s 仅包含空格,则返回一个空片。

...这包括完全空旷的情况。s""

如果您需要对此进行其他控制,则可以使用字符串。FieldsFunc,它接受类型的函数,因此您可以自己确定构成“空间”的内容。但是,由于您的输入字符串来自terraform,我想它会表现得足够好。func(rune) bool

可能有第三方包已经实现了此功能,但除非您的程序已经导入了它们,否则我认为基于标准库的本机解决方案始终是首选。


unicode.IsSpace实际上还包括更高的符文和,在这种情况下调用0x850xA0strings.FieldsFieldsFunc(s, unicode.IsSpace)


查看完整回答
反对 回复 2022-10-04
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

package main


import (

    "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


查看完整回答
反对 回复 2022-10-04
  • 2 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号