2 回答

TA貢獻1853條經驗 獲得超18個贊
查看 Go 標準庫,數組似乎經常用于已知長度的散列之類的東西。例如sha256.Sum256返回一個[sha256.Size]byte
where?sha256.Size
is 32。或者查看digest
實現hash.Hash
接口的結構,其中sha256
包含[chunk]byte
where?chunk
is 64,即 sha256 塊大小。
我認為通常使用數組來避免不必要的內存分配。要利用對可變長度切片進行操作的算法,您可以將數組轉換為切片而無需使用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條經驗 獲得超4個贊
切片在 Go 中是一流的,并且根據它們與標準庫中數組的比較用法,它似乎是首選方式。
將數組轉換為切片也很簡單:
package main
import (
"fmt"
)
func main() {
array := [5]int{1, 2, 3, 4, 5}
slice := array[:]
fmt.Println("Hello, playground", array, slice)
}
- 2 回答
- 0 關注
- 168 瀏覽
添加回答
舉報