登录
首页 >  Golang >  Go问答

Goland中通过字符串获取结构体字段

来源:stackoverflow

时间:2024-04-22 15:36:33 374浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《Goland中通过字符串获取结构体字段》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

在 js 中我可以:

const str = "Name"
const obj = {"Name" : "SomeName"}
console.log(obj[str])

我如何在 goland 中做到这一点?


正确答案


通常,您不会对 go 中的结构执行此操作。当你需要能够做到这一点时,最好的方法通常是先创建一个 map[string]string,你可以像在 js 中一样访问它。然后你将它转换成一个结构体,代码如下:

structfrommap := mystructtype{
 name: mymap["name"], 
 favoritepokemon: mymap["favoritepokemon"],
}

如果您确实需要以这种方式与结构体交互,您可以导入“reflect”包,然后执行

reflect.valueof(mystruct).fieldbyname("name")
package main

import (
    "fmt"
    "reflect"
)

func main() {
    type user struct {
        firstName string
        lastName  string
    } // hire you define your struct

    u := user{firstName: "John", lastName: "Doe"}
    s := reflect.ValueOf(u)

    fmt.Println("Name:", s.FieldByName("firstName"))
}

为了帮助你开始使用 go,我推荐这个:https://quii.gitbook.io/learn-go-with-tests/

好好学习/编码:)

到这里,我们也就讲完了《Goland中通过字符串获取结构体字段》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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