Golang: Printf Verbs

By Xah Lee. Date: . Last updated: .

The fmt.Println function supports many verbs (aka placeholder formats). [see Golang: Print]

Here's a complete list of them.


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


the word true or false


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

Floating-point and complex constituents:

decimalless scientific notation with exponent a power of two, in the manner of strconv.FormatFloat with the 'b' format, e.g -123456p-78
scientific notation, e.g. -1.234456e+78
scientific notation, e.g. -1.234456E+78
decimal point but no exponent, e.g. 123.456
synonym for %f
%e for large exponents, %f otherwise. Precision is discussed below.
%E for large exponents, %F otherwise
hexadecimal notation (with decimal power of two exponent), e.g. -0x1.23abcp+20
upper-case hexadecimal notation, e.g. -0X1.23ABCP+20

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

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


address of 0th element in base 16 notation, with leading 0x


base 16 notation, with leading 0x
The %b, %d, %o, %x and %X verbs also work with pointers,
%b, %d, %o, %x and %X verbs also work with pointers,
formatting the value exactly as if it were an integer.
atting the value exactly as if it were an integer.

The default format for %v is:

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

Width is specified by an optional decimal number immediately preceding the verb. If absent, the width is whatever is necessary to represent the value. Precision is specified after the (optional) width by a period followed by a decimal number. If no period is present, a default precision is used. A period with no following number specifies a precision of zero. Examples:



Golang Print


Compile and Run


Types and Values

Branching and Loop

Data Structure