斯金格

fmt.Stringer 接口需要一个方法,即满足 String() string。string 方法定义该值的本机字符串格式,如果将值提供给任何 fmt 包格式化或打印例程,则该方法是默认表示形式。

package main

import (
    "fmt"
)

type User struct {
    Name  string
    Email string
}

// String satisfies the fmt.Stringer interface for the User type
func (u User) String() string {
    return fmt.Sprintf("%s <%s>", u.Name, u.Email)
}

func main() {
    u := User{
        Name:  "John Doe",
        Email: "johndoe@example.com",
    }

    fmt.Println(u)
    // output: John Doe <johndoe@example.com>
}

Playground