在 tophash [bucketCnt]uint8 這個(gè)數(shù)組中查詢對(duì)應(yīng)key 的tophash 所匹配的索引
golang - map1. 底層原理 hmap Go中的map是一個(gè)指針,占用8個(gè)字節(jié),指向底層的hmap結(jié)構(gòu)體(hash表),在源碼包src/runtime/map.go中定義了該結(jié)構(gòu)體,如下所...
在 tophash [bucketCnt]uint8 這個(gè)數(shù)組中查詢對(duì)應(yīng)key 的tophash 所匹配的索引
golang - map1. 底層原理 hmap Go中的map是一個(gè)指針,占用8個(gè)字節(jié),指向底層的hmap結(jié)構(gòu)體(hash表),在源碼包src/runtime/map.go中定義了該結(jié)構(gòu)體,如下所...
go 版本基于1.18 結(jié)構(gòu)體 結(jié)構(gòu)體定義如下: 當(dāng)我們初始化一個(gè)WaitGroup對(duì)象時(shí),其counter值、waiter值、semap值均為0 noCopy :空結(jié)構(gòu)體,...
1. 介紹 CPU把內(nèi)存當(dāng)成是一塊一塊的,塊的大小可以是2,4,8,16字節(jié)大小,因此CPU在讀取內(nèi)存時(shí)是一塊一塊進(jìn)行讀取的。塊大小成為memory access granu...
1. 簡(jiǎn)介 go 1.7 開(kāi)始引入context(上下文),準(zhǔn)確地說(shuō)是goroutine 的上下文。主要在goroutine 間傳遞上下文消息,包括了取消信號(hào), 超時(shí)時(shí)間,截...
1. database 在 MongoDB 中,數(shù)據(jù)庫(kù)保存一個(gè)或多個(gè)文檔集合。等價(jià)于關(guān)系型數(shù)據(jù)庫(kù)中的database 如果數(shù)據(jù)庫(kù)不存在,MongoDB 會(huì)在首次為該數(shù)據(jù)庫(kù)存儲(chǔ)...
1. 介紹 在mongodb 5.0 版本新增的功能,它有效地存儲(chǔ)了一段時(shí)期內(nèi)的測(cè)量序列。時(shí)間序列數(shù)據(jù)是隨著時(shí)間收集的任何類型的數(shù)據(jù),并由一個(gè)或多個(gè)不變參數(shù)唯一標(biāo)識(shí), 這些不...
MongoDB 將數(shù)據(jù)記錄存儲(chǔ)為 BSON類型的 文檔(document)。 BSON 是一種二進(jìn)制數(shù)據(jù)類型,是json 的一種擴(kuò)展, bson 支持了更多的數(shù)據(jù)類型。 下圖...
Collation特性(排序規(guī)則) 是mongoDB 3.4 版本新增的。 允許MongoDB的用戶根據(jù)不同的語(yǔ)言定制排序規(guī)則。 1. 排序?qū)傩?排序規(guī)則有如下的字段屬性 l...
BSON 是一種二進(jìn)制序列化格式,用于在 MongoDB 中存儲(chǔ)文檔和進(jìn)行遠(yuǎn)程過(guò)程調(diào)用。 詳細(xì)參考:https://bsonspec.org/[https://bsonspe...
mongoDB Shell (mongosh) 是一個(gè)功能齊全的 JavaScript 和 Node.js 14.x REPL 環(huán)境,用于與 MongoDB 數(shù)據(jù)庫(kù)進(jìn)行交互。...
1. 原理 hchan 通過(guò)var聲明或者make函數(shù)創(chuàng)建的channel變量是一個(gè)存儲(chǔ)在函數(shù)棧幀上的指針,占用8個(gè)字節(jié),指向堆上的hchan結(jié)構(gòu)體源碼包中src/runti...
1. 底層原理 hmap Go中的map是一個(gè)指針,占用8個(gè)字節(jié),指向底層的hmap結(jié)構(gòu)體(hash表),在源碼包src/runtime/map.go中定義了該結(jié)構(gòu)體,如下所...
切片定義 切片是基于數(shù)組實(shí)現(xiàn)的,它的底層是數(shù)組,可以理解為對(duì) 底層數(shù)組的抽象。切片底層結(jié)構(gòu)并沒(méi)有使用加鎖等方式,不支持并發(fā)讀寫,所以并不是線程安全的 源碼包中src/runt...
go的多模塊工作區(qū)是從1.18 版本開(kāi)始的,所以要使用它首先要確認(rèn)go 的版本。 一下教程介紹了一個(gè)多模塊工作區(qū)的用例。在多模塊工作區(qū)中創(chuàng)建兩個(gè)模塊,對(duì)這些模塊進(jìn)行更改,并在...
從1.18 版本開(kāi)始, golang 語(yǔ)言將模糊測(cè)試(fuzzing test)集成在其標(biāo)準(zhǔn)工具鏈中 概述 Fuzzing 是一種通過(guò)不斷控制程序的輸入來(lái)查找bug的自動(dòng)化測(cè)...
代碼實(shí)現(xiàn)基于golang version 1.18 1. 冒泡排序 冒泡排序是一種交換排序,核心是冒泡,把數(shù)組中最大的那個(gè)往上冒,冒的過(guò)程就是和他相鄰的元素交換。 重復(fù)走訪...
BitMap(位圖)就是用一個(gè)bit位來(lái)標(biāo)記某個(gè)元素所對(duì)應(yīng)的value,而key即是該元素,由于BitMap使用了bit位來(lái)存儲(chǔ)數(shù)據(jù),因此可以大大節(jié)省存儲(chǔ)空間。BitMap解...
1. 申明一個(gè)泛型函數(shù) [T any] 約束參數(shù)的類型,意思是該函數(shù)支持任何T類型; 多個(gè)泛型參數(shù)語(yǔ)法: 2. 申明泛型切片 帶有類型參數(shù)的類型被叫做泛型類型。下面定義一個(gè)底...
1.1 基本術(shù)語(yǔ) 樹(shù)(Tree)是n(n>=0)個(gè)結(jié)點(diǎn)的有限集。n=0時(shí)稱為空樹(shù)。在任意一棵非空樹(shù)中:(1)有且僅有一個(gè)特定的稱為根(Root)的結(jié)點(diǎn);(2)當(dāng)n>1時(shí),其余...
數(shù)組是內(nèi)存中的一片連續(xù)的內(nèi)存空間 可以根據(jù)索引下標(biāo)獲取某一個(gè)元素 新增刪除元素時(shí)會(huì)移動(dòng)元素位置保證連續(xù)性,效率低下 二維數(shù)組 簡(jiǎn)單來(lái)說(shuō)就是盛放數(shù)組的數(shù)據(jù),換言之,二維數(shù)據(jù)的一...