Sök…


Stringer

fmt.Stringer gränssnittet kräver en enda metod, String() string att vara nöjd. Strängmetoden definierar det "ursprungliga" strängeformatet för det värdet och är standardrepresentationen om värdet tillhandahålls till något av fmt paketens formaterings- eller utskriftsrutiner.

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: "[email protected]",
    }

    fmt.Println(u)
    // output: John Doe <[email protected]>
}

Playground

Grundläggande fmt

Paketet fmt implementerar formaterade I / O med hjälp av formatverb :

%v    // the value in a default format
%T    // a Go-syntax representation of the type of the value
%s    // the uninterpreted bytes of the string or slice

Formatera funktioner

Det finns fyra huvudfunktionstyper i fmt och flera variationer inom.

Skriva ut

fmt.Print("Hello World")        // prints: Hello World
fmt.Println("Hello World")      // prints: Hello World\n
fmt.Printf("Hello %s", "World") // prints: Hello World

Sprinta

formattedString := fmt.Sprintf("%v %s", 2, "words") // returns string "2 words"

fprint

byteCount, err := fmt.Fprint(w, "Hello World") // writes to io.Writer w

Fprint kan användas inom http hanterare:

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello %s!", "Browser")
}   // Writes: "Hello Browser!" onto http response

Skanna

Skanning skannar text läst från standardinmatning.

var s string
fmt.Scanln(&s) // pass pointer to buffer
// Scanln is similar to fmt.Scan(), but it stops scanning at new line.
fmt.Println(s) // whatever was inputted

Stringer-gränssnitt

Alla värden som har en String() -metod implementerar fmt inteface Stringer

type Stringer interface {
        String() string
}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow