我正在尝试在环游世界(https://tour.golang.org/methods/18)中完成此练习,以实现一种由四个字节的数组组成String()
的IPAddr
类型的方法。到目前为止,我已经尝试过:
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])
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句