1
我有這樣的代碼:如何將[]字節轉換爲[16]字節?
func my_function(hash string) [16]byte {
b, _ := hex.DecodeString(hash)
return b // Compile error: fails since [16]byte != []byte
}
b
將[]byte
類型。我知道hash
的長度是32.我怎樣才能讓我的代碼在上面工作? IE瀏覽器。我可以以某種方式從通用字節數組轉換爲固定長度的字節數組?我對分配16個新字節和複製數據不感興趣。
就像在一個數組中複製切片一樣? http://stackoverflow.com/a/21399657/6309 – VonC
不,我不喜歡複製。添加到問題。 – Ztyx
沒有'unsafe'不能轉換。 slice頭部本身在amd64上是24個字節,並且在'hex.DecodeString'返回時被複制到堆棧,並且哈希本身將遠遠大於複製16字節結果的成本;我會選擇你的戰鬥,而不是太擔心這個。 – twotwotwo