让IPAddr类实现fmt.Stringer以使用点号分隔格式输出地址。
    例如,IPAddr(1,2,3,4)应输出”1.2.3.4”。
    这个练习的关键是,在IPAddr的String()方法中,使用fmt.Springtf对输出进行格式化。

    1. package main
    2. import "fmt"
    3. type IPAddr [4]byte
    4. // TODO: Add a "String() string" method to IPAddr.
    5. func (ipa IPAddr) String() string {
    6. return fmt.Sprintf("%v.%v.%v.%v",ipa[0], ipa[1], ipa[2], ipa[3])
    7. }
    8. func main() {
    9. addrs := map[string]IPAddr{
    10. "loopback": {127, 0, 0, 1},
    11. "googleDNS": {8, 8, 8, 8},
    12. }
    13. //fmt.Println(addrs["loopback"].String())
    14. for n, a := range addrs {
    15. fmt.Printf("%v: %v\n", n, a)
    16. }
    17. }

    运行结果

    1. loopback: 127.0.0.1
    2. googleDNS: 8.8.8.8

    Go Stringers - 图1