Go Formatting Verbs
Formatting Verbs for Printf()
Go offers several formatting verbs that can be used with the Printf()
function.
General Formatting Verbs
The following verbs can be used with all data types:
Verb | Description |
---|---|
%v | Prints the value in the default format |
%#v | Prints the value in Go-syntax format |
%T | Prints the type of the value |
%% | Prints the % sign |
Example
package main
import ("fmt")
func main() {
var i = 15.5
var txt = "Hello World!"
fmt.Printf("%v\n", i)
fmt.Printf("%#v\n", i)
fmt.Printf("%v%%\n", i)
fmt.Printf("%T\n", i)
fmt.Printf("%v\n", txt)
fmt.Printf("%#v\n", txt)
fmt.Printf("%T\n", txt)
}
Result:
15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string
Integer Formatting Verbs
The following verbs can be used with the integer data type:
Verb | Description |
---|---|
%b | Base 2 |
%d | Base 10 |
%+d | Base 10 and always show sign |
%o | Base 8 |
%O | Base 8, with leading 0o |
%x | Base 16, lowercase |
%X | Base 16, uppercase |
%#x | Base 16, with leading 0x |
%4d | Pad with spaces (width 4, right justified) |
%-4d | Pad with spaces (width 4, left justified) |
%04d | Pad with zeroes (width 4 |
Example
package main
import ("fmt")
func main() {
var i = 15
fmt.Printf("%b\n", i)
fmt.Printf("%d\n", i)
fmt.Printf("%+d\n", i)
fmt.Printf("%o\n", i)
fmt.Printf("%O\n", i)
fmt.Printf("%x\n", i)
fmt.Printf("%X\n", i)
fmt.Printf("%#x\n", i)
fmt.Printf("%4d\n", i)
fmt.Printf("%-4d\n", i)
fmt.Printf("%04d\n", i)
}
Result:
1111
15
+15
17
0o17
f
F
0xf
15
15
0015
String Formatting Verbs
The following verbs can be used with the string data type:
Verb | Description |
---|---|
%s | Prints the value as plain string |
%q | Prints the value as a double-quoted string |
%8s | Prints the value as plain string (width 8, right justified) |
%-8s | Prints the value as plain string (width 8, left justified) |
%x | Prints the value as hex dump of byte values |
% x | Prints the value as hex dump with spaces |
Example
package main
import ("fmt")
func main() {
var txt = "Hello"
fmt.Printf("%s\n", txt)
fmt.Printf("%q\n", txt)
fmt.Printf("%8s\n", txt)
fmt.Printf("%-8s\n", txt)
fmt.Printf("%x\n", txt)
fmt.Printf("% x\n", txt)
}
Result:
Hello
"Hello"
Hello
Hello
48656c6c6f
48 65 6c 6c 6f
Boolean Formatting Verbs
The following verb can be used with the boolean data type:
Verb | Description |
---|---|
%t | Value of the boolean operator in true or false format (same as using %v) |
Example
package main
import ("fmt")
func main() {
var i = true
var j = false
fmt.Printf("%t\n", i)
fmt.Printf("%t\n", j)
}
Result:
true
false
Float Formatting Verbs
The following verbs can be used with the float data type:
Verb | Description |
---|---|
%e | Scientific notation with 'e' as exponent |
%f | Decimal point, no exponent |
%.2f | Default width, precision 2 |
%6.2f | Width 6, precision 2 |
%g | Exponent as needed, only necessary digits |
Example
package main
import ("fmt")
func main() {
var i = 3.141
fmt.Printf("%e\n", i)
fmt.Printf("%f\n", i)
fmt.Printf("%.2f\n", i)
fmt.Printf("%6.2f\n", i)
fmt.Printf("%g\n", i)
}
Result:
3.141000e+00
3.141000
3.14
3.14
3.141