亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢索字段選項值

如何檢索字段選項值

Go
蕪湖不蕪 2022-10-04 16:35:04
我有原型:extend google.protobuf.FieldOptions {  string foo_option = 50000;}message Request {  // all fields have foo_option  string str1 = 1 [(foo_option) = "bar1"];  string str2 = 1 [(foo_option) = "bar2"];}在 Go 中,給定 ,我如何檢索每個字段的值?req *Requestfoo_option
查看完整描述

1 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

從 中,使用選項() 方法。protoreflect.FieldDescriptor

您將需要一些類型斷言來檢索實際的選項值。完整的代碼段可能如下所示:

// imports

// "google.golang.org/protobuf/proto"

// "google.golang.org/protobuf/reflect/protoreflect"

// "google.golang.org/protobuf/types/descriptorpb"


    p := msg.ProtoReflect()

    p.Range(func(fd protoreflect.FieldDescriptor, value protoreflect.Value) bool {

        opts := fd.Options().(*descriptorpb.FieldOptions)

        s, _ := proto.GetExtension(opts, mypbpkg.E_FooOption)

        fmt.Println(*s.(*string)) // bar1

        return true

    })


查看完整回答
反對 回復 2022-10-04
  • 1 回答
  • 0 關注
  • 82 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號