fmt package
The fmt package implements I/O formatting following the example of C's printf and scanf.
How to use fmt package?
The following code snippet contains some examples of using fmt functions, which you can try here (opens in a new tab).
package main
import (
"fmt"
)
func main() {
// Println writes to standard output.
fmt.Println("Follow The Pattern") // Follow The Pattern
fmt.Println("Follow", 0, "Pattern") // Follow 0 Pattern
fmt.Print("Follow The Pattern") // Prints to standard output without newline
fmt.Print(" Follow The Pattern\n")
localStruct := struct {
Count int
Title string
}{1, "FP"}
fmt.Printf("Integer: %d, String: %s, type of literal: %T, Value: %v, Struct type: %T \n",
1, "hello", int64(1), localStruct, localStruct)
// Integer: 1, String: hello, type of literal: int64, Value: {1 FP}, Struct type: struct { Count int; Title string } ß
// prints literal percent sign, consume no value
fmt.Printf("Percent sign: %%\n") // %
the := 0
text := fmt.Sprint("Follow", the, "Pattern") // stores the string into variable, without white space
fmt.Println(text) // Follow0Pattern
text = fmt.Sprintf("Integer: %d, String: %s, Value type: %T, Value: %v", 1, "hello", int64(1), localStruct)
fmt.Println(text) // Integer: 1, String: hello, Value type: int64, Value: {1 FP}
}Using fmt package with packages that implements io.Writer interface
The os.File type implements the io.Writer interface, allowing it to be used together with fmt functions. It will behave the same way as if you were writing to the console.
package main
import (
"fmt"
"log"
"os"
)
func main() {
localStruct := struct {
Count int
Title string
}{1, "FP"}
// fmt.Fprint can print to any interface that implements io.Writer like os.File
file, err := os.Create("./dump.txt")
if err != nil {
log.Fatal(err) // exit from the application while it prints the error
}
fmt.Fprintln(file, "Follow The Pattern")
fmt.Fprintln(file, "Follow", 0, "Pattern")
fmt.Fprintf(file, "Integer: %d, String: %s, type of literal: %T, Value: %v, Struct Type: %T \n",
1, "hello", int64(1), localStruct, localStruct)
// File content
/*
Follow The Pattern
Follow 0 Pattern
Integer: 1, String: hello, type of literal: int64, Value: {1 FP}, Struct Type: struct { Count int; Title string }
*/
err = file.Close()
if err != nil {
log.Fatal(err)
}
}You can run the code in your browser here (opens in a new tab).