欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Go中Protobuf基于反射API是怎樣的

Go中Protobuf基于反射API是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、重慶小程序開發(fā)公司、公眾號商城、等建站開發(fā),成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。

Go 的 protocol buffer 綁定是用于谷歌的語言無關(guān)的數(shù)據(jù)交換格式,旨在取代 JSON 用于高性能應(yīng)用程序,目的是把 protocol buffer 系統(tǒng)合并到Go 的類型系統(tǒng)中,并在運(yùn)行時實現(xiàn)其操作。

protocol buffer提供了一種方法以指定用于傳輸結(jié)構(gòu)化數(shù)據(jù)的模式。這種模式通常被轉(zhuǎn)換成一種特定于編程語言的表示形式,稱為綁定,使得使用高級別的接口處理 protobuf 消息變得更容易。

根據(jù)新protobuf模塊版本的作者 Joe Tsai、Damien Neil 和 Herbie Ong 的說法,之前的protobuf實現(xiàn)已經(jīng)不能滿足 Go 開發(fā)人員的期望了。具體來說,它雖然提供了 Go 類型和值的視圖,但是忽略了 protocol buffer 類型系統(tǒng)中的信息。

這樣做的后果就是 portobuf 注解的丟失。例如,我們可能想編寫一個遍歷日志條目并清除任何注解(annotation)為包含敏感數(shù)據(jù)的字段的函數(shù)。注解不是 Go 類型系統(tǒng)的一部分。

舊的 portobuf 模塊的另一個局限是依賴于靜態(tài)綁定,從而阻礙了動態(tài)消息的使用,而動態(tài)消息的類型在編譯時不是完全可知的。

新的 protobuf 模塊 (版本為 APIv2)基于這個假設(shè):protobuf Message 必須完全指定消息的行為,并使用反射以提供 protobuf 類型的完整視圖。Go protobuf APIv2 的基石是新的 proto.Message 接口,可用于所有生成的消息類型,并提供了訪問消息內(nèi)容的方式。這包括所有 protobuf 字段,可以使用 protoreflect.Message.Range 方式對它們進(jìn)行迭代。該方法既可以處理動態(tài)消息,也可以訪問消息選項。下面例子說明如何處理消息以在進(jìn)一步處理前清除其包含的所有敏感信息:

// Redact清除pb中的每個敏感字段。func Redact(pb proto.Message) {    m := pb.ProtoReflect()    m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {        opts := fd.Options().(*descriptorpb.FieldOptions)        if proto.GetExtension(opts, policypb.E_NonSensitive).(bool) {            return true        }        m.Clear(fd)        return true    })}

然而,幾個Hacker News評論者指出,Go protobuf APIv2的版本控制有點讓人感到困惑 。開發(fā)人員需要把新版本綁定到一個特定的存儲庫,而不能使用新的版本擴(kuò)展現(xiàn)有的存儲庫,并把它標(biāo)記為 v2。Damien Neil 解釋了這一決定背后的原因,如下所示:

我們可以把新的API標(biāo)記為v2:在導(dǎo)入路徑中,把v1和v2清楚地區(qū)分開來。讓人感到困惑的:google.golang.org/protobuf@v1不存在,而v2存在。10年后,希望沒人關(guān)心這個舊的github.com/golang/protobuf,那么,這個令人困惑的事就不存在了。我們可以把新的API標(biāo)記為v1:在導(dǎo)入路徑中難以清楚地區(qū)分開來。把google.golang.org/protobuf的第一個版本標(biāo)記為v1是有意義的。如果我們認(rèn)為它是個糟糕的想法,那么,從v1轉(zhuǎn)到v2比從v2回退到v1更容易一些。

此外,Go protobuf APIv2 將從 1.20 版開始。Neil 對此做了的解釋,這樣的目的是避免在錯誤報告中出現(xiàn)版本重疊產(chǎn)生的歧義, 他認(rèn)為 Go protobuf APIv1 永遠(yuǎn)不會有 1.20 版。

最后要注意的是,APIv1 不會被 APIv2 淘汰,它會得到無限期維護(hù)。事實上,其最新的實現(xiàn)(1.4 版)是在 APIv2 之上實現(xiàn)的。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

網(wǎng)站題目:Go中Protobuf基于反射API是怎樣的
分享URL:http://aaarwkj.com/article30/psosso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)虛擬主機(jī)、電子商務(wù)手機(jī)網(wǎng)站建設(shè)、面包屑導(dǎo)航、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
日韩精品欧美中文字幕| 尤物视频在线观看一下| 亚洲免费观看视频一区二区三区| 朝桐光日韩一区二区三区| 欧美日韩精品人妻一区| 亚洲欧美日韩一区二区视频| 欧美成人午夜福利在线视频| 国产黄片大秀在线观看| 日韩成人一级片在线观看| 亚洲黄香蕉视频免费看| 亚洲一区精品二人人爽久久| 人妻在线中文字幕一区 | 国产精品一级在线播放| 亚洲成熟中老妇女视频| 欧美性大片免费在线观看| 日韩精品中文字幕免费人妻 | 亚洲一区成人精品在线| 中文字幕四虎在线观看| 亚洲欧洲日本一区精品| 亚洲黄色艳情视频录像| 日韩三级成人在线视频| 一本久久综合亚洲鲁鲁五月天| 精品国产一区二区成人| 蜜臀国产综合久久第一页| 亚洲精品成人久久av| 中文字幕人妻熟女人妻| 99久久精品人妻一区| 日韩高清在线一区二区三区| 中国一级黄片免费欧美| 人妻熟妇一区二区三区成人| 国产不卡视频观看网站| 97视频精品全部免费观看| 日韩在线不卡播放视频| 亚洲欧美经典精品专区| 精品亚洲一区二区三区| 97全国免费观看视频| 熟女人妻丰满视频中文字幕| 日韩精品中文字幕影视| 成人永久免费播放平台| 国产熟乱老女人露脸视频| 背德人妻中文字幕无修|