Поиск…
стрингер
Для интерфейса fmt.Stringer
требуется 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: "[email protected]",
}
fmt.Println(u)
// output: John Doe <[email protected]>
}
Основные функции fmt
Пакет fmt реализует форматированный ввод-вывод с использованием глаголов формата:
%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
Функции формата
Существует четыре основных типа функций в fmt
и несколько вариантов внутри.
Распечатать
fmt.Print("Hello World") // prints: Hello World
fmt.Println("Hello World") // prints: Hello World\n
fmt.Printf("Hello %s", "World") // prints: Hello World
спринт
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
можно использовать внутри обработчиков http
:
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello %s!", "Browser")
} // Writes: "Hello Browser!" onto http response
сканирование
Сканирование сканирует текст, считанный со стандартного ввода.
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
Любое значение, которое имеет метод String()
реализует fmt
inteface Stringer
type Stringer interface {
String() string
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow