登录
首页 >  Golang >  Go问答

使用字符串访问字节类型的结构体字段

来源:stackoverflow

时间:2024-04-22 17:36:38 283浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《使用字符串访问字节类型的结构体字段》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

有没有办法用字符串访问 []byte 类型的结构体字段?

package main

import "fmt"
import "reflect"

type myStruct struct {
    string1 []byte
    string2 []byte
}

func main() {
    v := myStruct{[]byte("text"), []byte("text2")}
    fmt.Println(getField(&v, "string1"))
}

func getField(v *myStruct, field string) string {
    r := reflect.ValueOf(v)
    f := reflect.Indirect(r).FieldByName(field)
    return f.String()
}

在我的示例中,输出字符串是: <[]uint8 值>

我已经阅读了以下示例,但这些示例仅访问 int 或 string 值。

按名称访问结构体属性

https://socketloop.com/tutorials/golang-how-to-get-struct-field-and-value-by-name


解决方案


package main

import "fmt"
import "reflect"

type myStruct struct {
    string1 []byte
    string2 []byte
}

func main() {
    v := myStruct{[]byte("text"), []byte("text2")}
    fmt.Println(getField(&v, "string1"))
}

func getField(v *myStruct, field string) string {
    r := reflect.ValueOf(v)
    f := reflect.Indirect(r).FieldByName(field)
    return string(f.Bytes())
}

今天关于《使用字符串访问字节类型的结构体字段》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

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