斯金格

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