byte二位数组转换问题005
这里简单介绍一下 bytes方法里面拼接转切片
res1:=bytes.Join([][]byte{
[]byte("hello"),
[]byte("world"),
}, []byte("") )
fmt.Printf("res1 %d\n",res1) // [104 101 108 108 111 119 111 114 108 100]
优化当前 数据拼接代码
//当前区块哈希数据的拼接 (只有创建的区块才能调用) 优化代码
func (block *Block) SetHash() {
//var blockByteInfo []byte //存储拼接好的数据 最后作为sha256函数的参数
//blockByteInfo=append(blockByteInfo,block.PrevHash...)
//blockByteInfo=append(blockByteInfo,block.Data...)
//blockByteInfo=append(blockByteInfo,block.MerkleRoot...)
//blockByteInfo=append(blockByteInfo,Uint64ToByte(block.Version)...)
//blockByteInfo=append(blockByteInfo,Uint64ToByte(block.TimeStamp)...)
//blockByteInfo=append(blockByteInfo,Uint64ToByte(block.Difficulty)...)
//blockByteInfo=append(blockByteInfo,Uint64ToByte(block.Nonce)...)
tmp:=[][]byte{
Uint64ToByte(block.Version),
block.PrevHash,
block.MerkleRoot,
block.Data,
Uint64ToByte(block.TimeStamp),
Uint64ToByte(block.Difficulty),
Uint64ToByte(block.Nonce),
}
blockByteInfo:= bytes.Join(tmp,[]byte(""))
hash:=sha256.Sum256(blockByteInfo)
block.Hash=hash[:]
}
__________________________________________________
str1:=[]string{"hello","world","!"}
str2:=strings.Join(str1,"+")
fmt.Printf("res: %s\n",str2)