登录
首页 >  Golang >  Go问答

在Golang中如何通过索引访问struct中的字段

来源:stackoverflow

时间:2024-03-09 10:06:25 483浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《在Golang中如何通过索引访问struct中的字段》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

如果结构字段是字符串,是否有可能更改结构字段中某些索引的字符?

我的意思是我可以使用字符串类型进行此类操作:

func main() {
    v := "helv"
    v[3] = "p"
}

我怎样才能对结构字段做同样的事情?以下作业不起作用。

type ik struct {
    a int
    b string
}

func main() {
    f := ik{1, "Pasis"}
    fmt.Println(f.b)
    f.b[2] = "r"
}

解决方案


由于 go 中的字符串是不可变的,因此您需要将另一个字符串重新分配给变量。您可以通过以下切片技巧来实现此目的,

chars := "helv"
// to replace the character in i'th index,
chars = chars[:i] + "p" + chars[i+1:]

所以,你的程序变成了,

type ik struct {
    a int
    b string
}

func main() {
    chars := "Helv"
    chars = chars[:3] + "p" + chars[4:]
    fmt.Println(chars)

    f := ik{1, "Pasis"}
    fmt.Println(f.b)
    f.b = f.b[:2] + "r" + f.b[3:]
    fmt.Println(f.b)
}

go演示:https://play.golang.org/p/flERg0MVXLE

今天关于《在Golang中如何通过索引访问struct中的字段》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>