go json編譯原理XJSON實現(xiàn)四則運算
發(fā)布日期:2022-07-15 19:19 | 文章來源:gibhub
在上一篇中介紹了xjson
的功能特性以及使用查詢語法快速方便的獲取JSON
中的值。
同時這次也更新了一個版本,主要是兩個升級:
- 對轉義字符的支持。
- 性能優(yōu)化,大約提升了30%??。
轉義字符
先說第一個轉義字符,不管是原始JSON
字符串中存在轉義字符,還是查詢語法中存在轉義字符都已經(jīng)支持,具體用法如下:
str = `{"1a.b.[]":"b"}` get = Get(str, "1a\\.b\\.\\[\\]") assert.Equal(t, get.String(), "b") str = `{".":"b"}` get = Get(str, "\\.") assert.Equal(t, get.String(), "b") str = `{"a":"{\"a\":\"123\"}"}` get = Get(str, "a") fmt.Println(get) assert.Equal(t, get.String(), "{\"a\":\"123\"}") assert.Equal(t, Get(get.String(), "a").String(), "123") str = `{"a":"{\"a\":[1,2]}"}` get = Get(str, "a") fmt.Println(get) assert.Equal(t, get.String(), "{\"a\":[1,2]}") assert.Equal(t, Get(get.String(), "a[0]").Int(), 1)
性能優(yōu)化
性能也有部分優(yōu)化,大約比上一版本提升了 30%。
pkg: github.com/crossoverJie/xjson/benckmark cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz BenchmarkDecode-121496877130 ns/op 44959 B/op 1546 allocs/op PASS ------------------------------------ pkg: github.com/crossoverJie/xjson/benckmark cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz BenchmarkDecode-121913662960 ns/op 41593 B/op 1407 allocs/op PASS
但總體來說還有不少優(yōu)化空間,主要是上限畢竟低,和官方庫比還是有不小的差距。
實現(xiàn)四則運算
接下來聊聊四則運算是如何實現(xiàn)的,這本身算是一個比較有意思的feature
,雖然用的場景不多
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
相關文章