伟大伟大

[A Tour of Go]练习:Stringer

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

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

package main

import (
	"fmt"
	"strings"
	"strconv"
)

type IPAddr [4]byte

// TODO: 给 IPAddr 添加一个 "String() string" 方法
func (ipAddr IPAddr) String() string {
	arr := make([]string, 4)
	for index, figure := range ipAddr {
		//fmt.Println("%v", strconv.Itoa(int(figure)))
		arr[index] = strconv.Itoa(int(figure))
	}
		
	return strings.Join(arr, ".")
}

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)
	}
}
posted @ 2021-03-05 11:33  wooHsi  阅读(147)  评论(0)    收藏  举报