Go指南练习_Stringer

源地址 https://tour.go-zh.org/methods/18

一、题目描述

通过让 IPAddr 类型实现 fmt.Stringer 来打印点号分隔的地址。

例如,IPAddr{1, 2, 3, 4} 应当打印为 "1.2.3.4"

二、题目分析

  • 设置IPAddr类型;
  • 借助fmt.Stringer函数打印地址。

三、Go代码

import "fmt"

type IPAddr [4]byte

// TODO: Add a "String() string" method to IPAddr.

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

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)
    }
}

运行结果

参考文档 http://www.cplusplus.com/reference/cstdio/sprintf/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏遊俠扎彪

GNU C之圆括号套花括号(表达式中的复合语句)

GNU C对ANSI C做了很多扩展,除比较知名的0长度数组、typeof关键字之类的以外,还有一个比较有意思的,那就是圆括号里面套花括号的复合语句。举例如下:

2257
来自专栏CSDN技术头条

常用 XML 解析技术

现在的软件项目都不是独立的一个项目,都是多系统协调工作。这样的话就涉及到系统间的通讯,通讯就会跟报文传输挂上关系。系统间使用怎样的报文格式进行通讯呢?有的使用固...

1013
来自专栏我是业余自学C/C++的

汇编语言-第三章 寄存器(栈存储)

2811
来自专栏Golang语言社区

Golang语言延迟函数defer用法分析

本文实例讲述了GO语言延迟函数defer用法。分享给大家供大家参考。具体分析如下: defer 在声明时不会立即执行,而是在函数 return 后,再按照 FI...

36215
来自专栏Golang语言社区

Golang语言捕获panic异常并转化为error

package mainimport ( "fmt" "errors")func testPanic2Error() (err erro...

3635
来自专栏章鱼的慢慢技术路

Go语言相关练习_选择题(3)

如果是值传递的话子函数对map修改不会影响父函数中的map,如果是地址传递则会影响。

963
来自专栏前端进阶之路

带你彻底弄懂Event Loop前言正文总结

我在学习浏览器和NodeJS的Event Loop时看了大量的文章,那些文章都写的很好,但是往往是每篇文章有那么几个关键的点,很多篇文章凑在一起综合来看,才可以...

1094
来自专栏技术博文

php面试题整理

1.禁用COOKIE 后 SEESION 还能用吗? 答:通常服务器端的session是借助于seesion cookie来和客户端交互的。 但如果客户端禁用了...

3818
来自专栏拂晓风起

中文URL编码

1545
来自专栏java技术学习之道

JVM初探 -JVM内存模型

1474

扫码关注云+社区