首页 > 后端开发 > Golang > Go中如何通过接口访问结构体字段?

Go中如何通过接口访问结构体字段?

DDD
发布: 2024-11-29 16:27:10
原创
312 人浏览过

How Can I Access Struct Fields Through an Interface in Go?

访问 Go 中的接口字段

在 Go 中使用接口时,重要的是要了解您无法通过以下方式直接访问底层类型的字段:一个接口。接口变量可以存储符合接口的任何值,但它不提供对值字段的直接访问。

在提供的代码片段中,SearchItemsByUser 函数返回一个 interface{} 值。要访问数据字段,例如 Params,您需要使用类型断言来访问接口背后的特定结构类型。

为此,您可以修改代码如下:

package search

type results struct {
    Hits             hits
    NbHits           int
    NbPages          int
    HitsPerPage      int
    ProcessingTimeMS int
    Query            string
    Params           string
}

func SearchItemsByUser(r *http.Request) results {
    var Result results

    er := json.Unmarshal(body, &Result)
    if er != nil {
        fmt.Println("error:", er)
    }
    return Result
}
登录后复制

现在可以直接使用返回值了:

func test(w http.ResponseWriter, r *http.Request) {

    result := search.SearchItemsByUser(r)
    fmt.Fprintf(w, "%s", result.Params)
}
登录后复制

以上是Go中如何通过接口访问结构体字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板