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

范围 []字符串返回 uint8

范围 []字符串返回 uint8

Go
慕虎7371278 2022-09-26 15:54:02
我有一个 yaml 文件,当前写为:resource:      File:        containment_path:        - File        - File::Value      Default:        containment_path:        - Default        - Default::Echo        - Default[main]      Exec:        containment_path:        - Stage        - Exec::File        - Exec[File]我使用结构来获取containment_path:type Yaml struct {    ContainmentPath      []string      `yaml:"containment_path"`}我想超越遏制路径的范围,以获取containment_path中的第二个值:文件::值,默认::回声,执行::文件我做这个代码:for _, v := range m.ContainmentPath {    spew.Dump("Value ContainmentPath:", m.ContainmentPath)    spew.Dump("Value v[1]:", v[1])          value = v[1]}当我运行它时,我得到这个遏制路径:(string) (len=8) "Value ContainmentPath:"([]string) (len=2 cap=2) { (string) (len=4) "File", (string) (len=11) "File::Value"}(string) (len=8) "Value ContainmentPath:"([]string) (len=3 cap=3) { (string) (len=7) "Default", (string) (len=13) "Default::Echo", (string) (len=13) "Default[main]"}(string) (len=8) "Value ContainmentPath:"([]string) (len=3 cap=3) { (string) (len=5) "Stage", (string) (len=10) "Exec::File", (string) (len=10) "Exec[File]"}当我运行它时,我得到了v[1]的这个:(string) (len=11) "Value v[1]:"(uint8) 114(string) (len=11) "Value v[1]:"(uint8) 105(string) (len=11) "Value v[1]:"(uint8) 116我想得到v[1]的值: 文件::值, 默认::回声, 执行::文件我如何在Go中执行此操作?谢谢
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

您正在索引到字符串,而不是 [] 字符串

ContainmentPath是字符串的一段。

运行 时,将采用切片中每个字符串的值。类型也是如此。for _, v := range m.ContainmentPathvvstring

当您打印时,您正在索引字符串(没有先检查其长度,非常糟糕的想法)并打印字符串中的第二个字符,这是一个字节。字节只是 uint8 的别名。v[1]


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信