2 回答

TA貢獻1853條經(jīng)驗 獲得超18個贊
查看 Go 標(biāo)準(zhǔn)庫,數(shù)組似乎經(jīng)常用于已知長度的散列之類的東西。例如sha256.Sum256返回一個[sha256.Size]byte
where?sha256.Size
is 32?;蛘卟榭?code>digest實現(xiàn)hash.Hash
接口的結(jié)構(gòu),其中sha256
包含[chunk]byte
where?chunk
is 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[:])
}

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)
}
- 2 回答
- 0 關(guān)注
- 163 瀏覽
添加回答
舉報