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 条评论
登录 后参与评论

相关文章

来自专栏何俊林

Android开发基础规范(一)

【小提醒】阅读本文约耗时3分钟左右。 前言:Android中一些开发规范,避免给自己和别人少留坑。 一、工程相关 1.1 工程结构 当进行提交代码的工作时,工...

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

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

2291
来自专栏皮皮之路

【JVM】浅谈双亲委派和破坏双亲委派

笔者曾经阅读过周志明的《深入理解Java虚拟机》这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自己读的有多粗糙,也体会到只有实践...

962
来自专栏前端进阶之路

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

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

954
来自专栏拂晓风起

中文URL编码

1285
来自专栏生信宝典

Bash概论 - Linux系列教程补充篇

本篇是我最开始学习Linux命令时看的一篇帖子,最早见于ChinaUnix (这次查找其出处时发现2002年就有这篇)。学习过程中,遇到问题就查一下。这次看到,...

1867
来自专栏达摩兵的技术空间

数组双向绑定的简单分享

本文主要是摘录《vuejs权威指南》部分的相关解读,我们都知道vue对数据支持双向绑定,对数组也是支持的,但是其在官网有明确说明,对于数组通过 对象.语法来修改...

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

JVM初探 -JVM内存模型

1384
来自专栏Golang语言社区

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

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

3455
来自专栏老马寒门IT

Node入门教程(5)第四章:global 全局变量

global - 全局变量 全局对象(global object),不要和 全局的对象( global objects )或称标准内置对象混淆。这里说的全局的对...

2784

扫码关注云+社区