23 September 2017

格式

General

%v   the value in a default format. when printing structs, the plus flag (%+v) adds field names
%#v  a Go-syntax representation of the value
%T   a Go-syntax representation of the type of the value
%%   a literal percent sign; consumes no value

Boolean

%t   the word true or false

Integer

%b   base 2
%c   the character represented by the corresponding Unicode code point
%d   base 10
%o   base 8
%q   a single-quoted character literal safely escaped with Go syntax.
%x   base 16, with lower-case letters for a-f
%X   base 16, with upper-case letters for A-F
%U   Unicode format: U+1234; same as "U+%04X"

Floating-point and complex constituents

%b   decimalless scientific notation with exponent a power of two, in the manner of strconv.FormatFloat with the 'b' format, e.g. -123456p-78
%e   scientific notation, e.g. -1.234456e+78
%E   scientific notation, e.g. -1.234456E+78
%f   decimal point but no exponent, e.g. 123.456
%F   synonym for %f
%g   %e for large exponents, %f otherwise. Precision is discussed below.
%G   %E for large exponents, %F otherwise

String and slice of bytes (treated equivalently with these verbs)

%s   the uninterpreted bytes of the string or slice
%q   a double-quoted string safely escaped with Go syntax
%x   base 16, lower-case, two characters per byte
%X   base 16, upper-case, two characters per byte

Pointer

%p   base 16 notation, with leading 0x

The default format for %v is

bool:                    %t
int, int8 etc.:          %d
uint, uint8 etc.:        %d, %#x if printed with %#v
float32, complex64, etc: %g
string:                  %s
chan:                    %p
pointer:                 %p

For compound objects, the elements are printed using these rules, recursively, laid out like this

struct:             {field0 field1 ...}
array, slice:       [elem0 elem1 ...]
maps:               map[key1:value1 key2:value2]
pointer to above:   &{}, &[], &map[]
%f       default width, default precision
%9f      width 9, default precision
%.2f     default width, precision 2
%9.2f    width 9, precision 2
%9.f     width 9, precision 0

func Errorf(format string, a …interface{}) error

Errorf formats according to a format specifier and returns the string as a value that satisfies error.

func Fprint(w io.Writer, a …interface{}) (n int, err error)

Fprint formats using the default formats for its operands and writes to w.
Spaces are added between operands when neither is a string.

It returns the number of bytes written and any write error encountered.

func Fprintf(w io.Writer, format string, a …interface{}) (n int, err error)

Fprintf formats according to a format specifier and writes to w.

It returns the number of bytes written and any write error encountered.

func Fprintln(w io.Writer, a …interface{}) (n int, err error)

Fprintln formats using the default formats for its operands and writes to w.
Spaces are always added between operands and a newline is appended.

It returns the number of bytes written and any write error encountered.

func Fscan(r io.Reader, a …interface{}) (n int, err error)

Fscan scans text read from r, storing successive space-separated values into successive arguments.Newlines count as space.

It returns the number of items successfully scanned. If that is less than the number of arguments, err will report why.

func Fscanf(r io.Reader, format string, a …interface{}) (n int, err error)

Fscanf scans text read from r, storing successive space-separated values into successive arguments as determined by the format.

It returns the number of items successfully parsed. Newlines in the input must match newlines in the format.

func Fscanln(r io.Reader, a …interface{}) (n int, err error)

Fscanln is similar to Fscan, but stops scanning at a newline and after the final item there must be a newline or EOF.

func Print(a …interface{}) (n int, err error)

Print formats using the default formats for its operands and writes to standard output. Spaces are added between operands when neither is a string. It returns the number of bytes written and any write error encountered.

func Printf(format string, a …interface{}) (n int, err error)

Printf formats according to a format specifier and writes to standard output. It returns the number of bytes written and any write error encountered.

func Println(a …interface{}) (n int, err error)

func Scan(a …interface{}) (n int, err error)

func Scanf(format string, a …interface{}) (n int, err error)

func Scanln(a …interface{}) (n int, err error)

func Sprint(a …interface{}) string

func Sprintf(format string, a …interface{}) string

func Sprintln(a …interface{}) string

func Sscan(str string, a …interface{}) (n int, err error)

func Sscanf(str string, format string, a …interface{}) (n int, err error)

func Sscanln(str string, a …interface{}) (n int, err error)

type Formatter

type Formatter interface {
      Format(f State, c rune)
}

type GoStringer

type ScanState

type Scanner

type State

type Stringer