240 發(fā)簡(jiǎn)信
IP屬地:北京
  • 120
    徹底搞懂Go泛型中dict的數(shù)據(jù)結(jié)構(gòu)

    Why為什么要研究dict的結(jié)構(gòu)哩至?Go泛型實(shí)現(xiàn)并沒(méi)有對(duì)dict的數(shù)據(jù)結(jié)構(gòu)進(jìn)行統(tǒng)一的限制囱桨,而是針對(duì)不同的gcshape生成不同的dict數(shù)據(jù)苔严,并存儲(chǔ)在只讀數(shù)據(jù)區(qū)淘衙。為了研究Go泛...

  • go1.21 循環(huán)用臨時(shí)變量不再共享

    效果: 普通for循環(huán) 可能得輸出: 對(duì)比:使用1.18版本的go運(yùn)行,輸出如下: for...rang循環(huán): 可能得輸出: 對(duì)比:使用1.18版本的go運(yùn)行债蓝,輸出如下: 至...

  • go buildflag之-trimpath

    What: 也就是說(shuō)耗美,在編譯產(chǎn)物中將不會(huì)使用文件的絕對(duì)路徑,而是使用module盟劫、go或者GOPATH夜牡。 Why: 添加-trimpath的收益: 減少二進(jìn)制的size(實(shí)測(cè)...

  • 120
    Go iota引起的線上事故

    背景是這樣的,前端頁(yè)面有一個(gè)日志level的枚舉值傳遞給后端侣签,server端會(huì)對(duì)該枚舉值的有效性進(jìn)行校驗(yàn)塘装,QA測(cè)試階段使用了默認(rèn)的level(也就是Info),并沒(méi)有測(cè)試出這...

  • [Go] fmt.Printf("%s", err) 怎么可能影所?

    工作中我們會(huì)發(fā)現(xiàn)代碼中會(huì)使用%s格式化err的情況蹦肴,包括一些開(kāi)源代碼。但是你翻一下源碼猴娩,內(nèi)置的error接口里面阴幌,并沒(méi)有String() string方法呀勺阐,怎么可能正常地打...

  • Go驗(yàn)證接口和nil的比較

    預(yù)備知識(shí): 任何空接口類型的變量,即interface{}裂七,其內(nèi)存布局均如下: 判斷interface{}變量是否為nil皆看,那么就是在判斷該空接口變量的動(dòng)態(tài)類型和動(dòng)態(tài)值是否均...

  • Go源碼編譯

    以go 1.18.2版本為例;假設(shè)你還沒(méi)有在系統(tǒng)裝安裝go環(huán)境背零;下面一步步教你源碼編譯腰吟。系統(tǒng)環(huán)境: 通過(guò)二進(jìn)制文件的形式,安裝go環(huán)境 編譯go源碼 設(shè)置編譯后的go環(huán)境變量...

  • 120
    跨域請(qǐng)求CORS

    預(yù)備知識(shí): 只有瀏覽器才會(huì)有跨域請(qǐng)求限制徙瓶,也就是如果是服務(wù)器之間直接發(fā)起http請(qǐng)求不會(huì)存在該限制毛雇。 CORS是在不滿足同源策略的情況下,才有可能引起跨域請(qǐng)求限制侦镇。 同源策略...

  • synapse安裝

    https://www.informaticar.net/install-matrix-synapse-on-centos-8/[https://www.informatic...

  • go 1.17 Register-based Go calling convention

    官方博客: https://go.googlesource.com/proposal/+/master/design/40724-register-calling.md[ht...

  • 120
    意料之外:空接口和nil的比較

    當(dāng)將一個(gè)值為nil的接口變量w賦值給空接口類型i后灵疮,i為nil。 但是將一個(gè)值為nil的接口指針變量w賦值給空接口類型i后壳繁,i就不等于nil了震捣。 what??? 當(dāng)我無(wú)意間測(cè)...

  • 120
    實(shí)現(xiàn)多個(gè)接口的類型,在類型斷言時(shí)的行為

    先上代碼: 類型T闹炉,底層數(shù)據(jù)為int類型(類型T并非int的類型別名蒿赢,注意區(qū)分type T = int),其同時(shí)實(shí)現(xiàn)了接口A和接口B。上面的代碼運(yùn)行時(shí)渣触,結(jié)果如下: 但是我稍微...

  • go防止接口被無(wú)意間實(shí)現(xiàn)

    go語(yǔ)言接口的獨(dú)特之處在于它是滿足隱式實(shí)現(xiàn)的鴨子模式羡棵,如果走起路來(lái)像鴨子,叫聲也像鴨子嗅钻,那么就會(huì)被認(rèn)為是鴨子皂冰。在go語(yǔ)言實(shí)現(xiàn)某個(gè)接口,并不需要顯式聲明养篓,只要實(shí)現(xiàn)了接口聲明的方...

  • 120
    MYSQL一次性返回查詢結(jié)果秃流,還是分批返回?

    結(jié)論:如果結(jié)果集大小超過(guò)TCP MSS(MAX SEGMENT SIZE)柳弄,將會(huì)分批將結(jié)果集返回給客戶端剔应。 實(shí)驗(yàn)過(guò)程如下(除了驗(yàn)證分批傳輸以外,還有列出和mysql交互過(guò)程中...

  • 120
    TCP keepalive是什么语御?

    wikipedia:A keepalive (KA) is a message sent by one device to another to check that the...

  • nc命令使用

    測(cè)試服務(wù)端某個(gè)端口是否可達(dá): 只監(jiān)聽(tīng)ipv4地址贪婉,不監(jiān)聽(tīng)ipv6地址: 當(dāng)客戶端斷開(kāi)連接時(shí)麦箍,nc listen服務(wù)會(huì)立即退出 這是因?yàn)閚c默認(rèn)只服務(wù)一個(gè)連接,如果想改變?cè)撔袨?..

  • 判斷字段值是否為null欢瞪,該使用 '=null' 還是 'is null'挂捻?

    結(jié)論: 一定要使用 'is null' 來(lái)判斷一個(gè)字段的值是否為null 任何和NULL值做比較的表達(dá)式的值都為NULL碉纺,就是這樣: 而 'is null' 語(yǔ)句能夠返回預(yù)期結(jié)果:

  • 以下兩個(gè)sql是如何使用索引的?

    該explain結(jié)果中,key字段信息表明該查詢使用到了索引: idx_key_part骨田;Extra信息里面包含了Using where和Using index耿导,其中Usin...

  • 非常感謝,你寫了這么多的評(píng)論态贤,的確是用心了舱呻。不過(guò)有些點(diǎn)評(píng)我并不十分同意,具體如下:
    1. 如果是一個(gè)大的slice悠汽,我可能并不會(huì)真的刪除元素箱吕,而是使用標(biāo)記的方法,標(biāo)記某些位置的索引被刪除了
    2. 如果是小的slice柿冲,并且在業(yè)務(wù)代碼中茬高,我覺(jué)得選擇哪個(gè)算法在性能上都沒(méi)啥太大區(qū)別,反而會(huì)更加關(guān)注是否需要修改原始slice假抄。另外如果放在某個(gè)關(guān)鍵的技術(shù)組件上怎栽,還是需要考慮性能的,即使slice元素?cái)?shù)量不大宿饱;
    3. 第二種方式熏瞄,底層數(shù)組的確是一個(gè),沒(méi)有重新創(chuàng)建刑棵,你可以用我下面的代碼跑一下(取slice指針值其實(shí)是取slice第一個(gè)元素的地址值):
    func main() {
    origin := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    target := origin[:0]
    for _, item := range origin {
    if item != 6 {
    target = append(target, item)
    }
    }

    fmt.Printf("origin: %p, target: %p", origin, target)
    }

    【Golang】slice刪除元素的性能對(duì)比

    在我寫的blog中巴刻,這個(gè)算是參與度比較高的,所以有必要把程序?qū)懙母尤菀桌斫庖恍惹N业碾娔X配置: 直接上代碼: Benchmark結(jié)果: 解釋: 除了第一種方法外胡陪,其他方法都...

亚洲A日韩AV无卡,小受高潮白浆痉挛av免费观看,成人AV无码久久久久不卡网站,国产AV日韩精品