Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Comprehensive Tutorial on fmt Package in Go Programming

Introduction

The fmt package in Go is a fundamental library used for formatted I/O operations. It provides functions for formatting and printing data to standard output, as well as reading formatted input from standard input. This tutorial will cover the various aspects of the fmt package with detailed explanations and examples.

Basic Printing

The most basic function provided by the fmt package is fmt.Print and fmt.Println. These functions print text to the standard output.

package main

import "fmt"

func main() {
    fmt.Print("Hello, World!")
    fmt.Println("Hello, World!")
}

The fmt.Print function prints the text without adding a newline at the end, while the fmt.Println function adds a newline at the end.

Hello, World!Hello, World!

Formatted Printing

The fmt.Printf function allows you to format strings in a variety of ways using format specifiers.

package main

import "fmt"

func main() {
    name := "John"
    age := 30
    fmt.Printf("My name is %s and I am %d years old.\n", name, age)
}

In this example, %s is a placeholder for a string, and %d is a placeholder for an integer.

My name is John and I am 30 years old.

Common Format Specifiers

Here are some common format specifiers used in fmt.Printf:

  • %d - Decimal integer
  • %f - Floating point number
  • %s - String
  • %t - Boolean
  • %v - Default format
  • %T - Type of the value

Example usage:

package main

import "fmt"

func main() {
    value := 42
    floating := 3.14
    boolean := true
    fmt.Printf("%d %f %t %v %T\n", value, floating, boolean, boolean, boolean)
}
42 3.140000 true true bool

Input Scanning

The fmt package also provides functions for reading formatted input. The most commonly used function is fmt.Scan.

package main

import "fmt"

func main() {
    var name string
    var age int
    fmt.Print("Enter your name: ")
    fmt.Scan(&name)
    fmt.Print("Enter your age: ")
    fmt.Scan(&age)
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}

In this example, fmt.Scan reads input from the standard input and stores it in the provided variables.

Enter your name: John
Enter your age: 30
Hello John, you are 30 years old.

Error Handling in fmt Package

Most of the functions in the fmt package return the number of bytes written and an error value. You can use these return values to handle errors.

package main

import (
    "fmt"
    "os"
)

func main() {
    _, err := fmt.Fprintf(os.Stdout, "Hello, %s!\n", "World")
    if err != nil {
        fmt.Println("Error writing to stdout:", err)
    }
}

In this example, fmt.Fprintf writes formatted output to os.Stdout and returns an error if the write operation fails.

Conclusion

The fmt package in Go is a powerful tool for formatted I/O operations. It provides a range of functions for printing and scanning data with various format specifiers. Understanding how to use the fmt package is essential for writing effective Go programs.