gpt4 book ai didi

go - Go 中如何将字节数组转换为字符串数组?

转载 作者:行者123 更新时间:2023-12-02 14:26:47 26 4
gpt4 key购买 nike

我正在尝试在 Go 之旅中完成此练习,https://tour.golang.org/methods/18 ,为由四个字节的数组组成的 IPAddr 类型实现 String() 方法。到目前为止我已经尝试过:

package main

import (
"fmt"
"strings"
)

type IPAddr [4]byte

func (ipaddr IPAddr) String() string {
ipaddrStrings := make([]string, 4)
for i, b := range ipaddr {
ipaddrStrings[i] = string(b)
}
return strings.Join(ipaddrStrings, ".")
}

func main() {
hosts := map[string]IPAddr{
"loopback": {127, 0, 0, 1},
"googleDNS": {8, 8, 8, 8},
}
for name, ip := range hosts {
fmt.Printf("%v: %v\n", name, ip)
}
}

但是,这会打印

loopback: ...
googleDNS:.

我也尝试过,按照https://programming.guide/go/convert-byte-slice-to-string.html ,执行string(ipaddr),但这会导致

cannot convert ipaddr (type IPAddr) to type string

我怎样才能完成这个练习?

最佳答案

添加此方法:

func (a IPAddr) String() string {
return fmt.Sprintf("%d.%d.%d.%d", a[0], a[1], a[2], a[3])
}

关于go - Go 中如何将字节数组转换为字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com