登录
首页 >  Golang >  Go问答

如何在 Go 中实现将字节数组转换为字符串数组?

来源:stackoverflow

时间:2024-03-15 13:30:26 178浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《如何在 Go 中实现将字节数组转换为字符串数组?》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在尝试在 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])
}

尝试使用 strconv.itoa(int(b)) 将数值转换为字符串,而不是 string(b)

今天关于《如何在 Go 中实现将字节数组转换为字符串数组?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>