不過你發現沒fasthttp關于string和[]byte的轉換方式和大家平常普遍使用的方式不一樣,fasthttp轉換實現如下:
//[]byte轉stringfunc b2s(b []byte) string { return *(*string)(unsafe.Pointer(&b))} //string轉[]bytefunc s2b(s string) (b []byte) { bh := (*reflect.SliceHeader)(unsafe.Pointer(&b)) sh := (*reflect.StringHeader)(unsafe.Pointer(&s)) bh.Data = sh.Data bh.Cap = sh.Len bh.Len = sh.Len return b}
為什么不用我們常見的string和[]byte的轉換方式呢?這樣做是怎么提高性能的呢?...
帶著這些疑問,今天將分享下并總結string和[]byte的轉換方式,不同的轉換方式之間的實現和區別!
圖片
如果此時此刻你剛好遇到面試官問你string和[]byte如何進行轉換,有幾種方式?你能答上來嗎
反正在寫這篇文章之前小許估計是答不出來的,哈哈!
畢竟知道的越多,不知道的也越多嘛
那今天我們就來聊聊,繼續往下讀之前,我們先了解下這兩種數據類型:
圖片
本文鏈接:http://www.tebozhan.com/showinfo-26-80518-0.html[]byte與string的兩種轉換方式和底層實現
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com