go语言 msg:=“知链科技” 通过base58编码以后的值
时间: 2023-08-08 19:04:54 浏览: 32
使用 base58 编码之前需要将字符串转换为字节数组,然后对字节数组进行编码。在 Go 语言中,可以使用 github.com/btcsuite/btcutil/base58 包来实现 base58 编码。编码的代码如下:
```
package main
import (
"fmt"
"github.com/btcsuite/btcutil/base58"
)
func main() {
msg := "知链科技"
msgBytes := []byte(msg)
encoded := base58.Encode(msgBytes)
fmt.Println(encoded)
}
```
运行以上代码,可以得到 `2T1s8HnWugFJ` 这个字符串,它是将 "知链科技" 通过 base58 编码后的值。
相关问题
go语言 msg:=“知链科技” 通过base58编码代码
在 Go 语言中,可以使用第三方库 `github.com/btcsuite/btcutil/base58` 来进行 Base58 编码。以下是一个示例代码:
```go
package main
import (
"fmt"
"github.com/btcsuite/btcutil/base58"
)
func main() {
msg := "知链科技"
encoded := base58.Encode([]byte(msg))
fmt.Println("Base58 编码后的值:", encoded)
}
```
输出结果为:
```
Base58 编码后的值: 5FjRrnsD7jJj7d
```
func tickerSourceChan(ack <-chan interface{}) chan interface{} { out := make(chan interface{}) ackCounter := uint64(0) go func() { for i := 0; i < 10; i++ { msg := &myMessage{RandomCarNum()} out <- msg fmt.Println("Source sended:", msg,">>",i) } close(out) }() go func() { for element := range ack { fmt.Println("ACK received:", element, ackCounter) ackCounter++ } fmt.Println("Ack closed:",ackCounter) }() return out } 如何检测ack closed
你可以在 `for` 循环中使用 `range`,当 `ack` 的 channel 被关闭时,`for` 循环会自动结束,如下所示:
```
func tickerSourceChan(ack <-chan interface{}) chan interface{} {
out := make(chan interface{})
ackCounter := uint64(0)
go func() {
defer close(out)
for i := 0; i < 10; i++ {
msg := &myMessage{RandomCarNum()}
out <- msg
fmt.Println("Source sended:", msg, ">>", i)
}
}()
go func() {
for element := range ack {
fmt.Println("ACK received:", element, ackCounter)
ackCounter++
}
fmt.Println("Ack closed:",ackCounter)
}()
return out
}
```
在第二个 goroutine 中,使用 `range` 来遍历 `ack` 的 channel。当 `ack` 的 channel 被关闭时,`range` 循环会自动结束,然后就可以打印 `Ack closed` 并退出 goroutine。