第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

已知長度數(shù)據(jù)的切片與數(shù)組

已知長度數(shù)據(jù)的切片與數(shù)組

Go
人到中年有點甜 2023-05-08 17:40:56
在處理諸如sha256已知長度為 32 字節(jié)的散列之類的東西時——使用[]byte切片或[32]byte數(shù)組更符合習(xí)慣嗎?我有點新手——但直覺上感覺使用[32]byte數(shù)組存儲散列很好而且明確,但實際上操作起來很麻煩,需要各種奇怪的事情,比如將數(shù)組復(fù)制到新的緩沖區(qū)切片中操縱為[]byte.
查看完整描述

2 回答

?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

查看 Go 標(biāo)準(zhǔn)庫,數(shù)組似乎經(jīng)常用于已知長度的散列之類的東西。例如sha256.Sum256返回一個[sha256.Size]bytewhere?sha256.Sizeis 32?;蛘卟榭?code>digest實現(xiàn)hash.Hash接口的結(jié)構(gòu),其中sha256包含[chunk]bytewhere?chunkis 64,即 sha256 塊大小。

我認為通常使用數(shù)組來避免不必要的內(nèi)存分配。要利用對可變長度切片進行操作的算法,您可以將數(shù)組轉(zhuǎn)換為切片而無需使用x[:].

package main


import (

? ? "crypto/sha256"

? ? "fmt"

)


type myHash struct {

? ? x [32]byte

}


func print(b []byte) {

? ? fmt.Print(b)

}


func main() {

? ? b := []byte("Hello world!")

? ? h := myHash{x: sha256.Sum256(b)}

? ? print(h.x[:])

}


查看完整回答
反對 回復(fù) 2023-05-08
?
炎炎設(shè)計

TA貢獻1808條經(jīng)驗 獲得超4個贊

切片在 Go 中是一流的,并且根據(jù)它們與標(biāo)準(zhǔn)庫中數(shù)組的比較用法,它似乎是首選方式。


將數(shù)組轉(zhuǎn)換為切片也很簡單:


package main


import (

    "fmt"

)


func main() {

    array := [5]int{1, 2, 3, 4, 5}

    slice := array[:]

    fmt.Println("Hello, playground", array, slice)

}


查看完整回答
反對 回復(fù) 2023-05-08
  • 2 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號