在下面的方法中,我尝试通过将字节附加到字符串数组来重新定义 IPAddr 类型的字符串方法
type IPAddr [4]byte
func (ip IPAddr) String() string {
var s []string
for _, i := range ip {
s = append(s, i)
}
return fmt.Sprintf(strings.Join(s, "."))
}
Run Code Online (Sandbox Code Playgroud)
不能使用 i(类型字节)作为附加的类型字符串
Tim*_*per 11
由于您的类型是一个长度很小的数组,所以我建议只构建字符串而不覆盖元素:
func (ip IPAddr) String() string {
return fmt.Sprintf("%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3])
}
Run Code Online (Sandbox Code Playgroud)
https://play.golang.org/p/nOSj-EyXuyf
如果你想通过加入字符串切片来实现你的解决方案,你需要使用strconv包将字节转换为十进制表示:
func (ip IPAddr) String() string {
s := make([]string, 0, len(ip))
for _, i := range ip {
s = append(s, strconv.Itoa(int(i)))
}
return strings.Join(s, ".")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4834 次 |
| 最近记录: |