DEV Community

Cover image for How to Print in GoLang
Steve Yonkeu
Steve Yonkeu

Posted on

2 1 1 1 1

How to Print in GoLang

It has always been a challenge for me when working with GoLang and trying to print out something, usually during debugging and or various other tasks while building.

Let's have a quick look at what we should use and when should we use it with regards to printing in GoLang.

PS: Try to read through, we will make it fast as much as possible.

Personally I usually use about 7 of the print methods in-built in GoLang, which include: fmt.Print, fmt.Println, fmt.Printf, fmt.Sprint, fmt.Sprintln, fmt.Sprintf and fmt.Fprint. In Go (golang), the fmt package provides several printing functions for different use cases.


1. fmt.Print

  • Purpose: Prints values directly to the console.
  • No Formatting Specifiers: Just concatenates values as strings.
  • No Line Break: No newline at the end, so subsequent output appears on the same line.

Example:

fmt.Print("Hello", " ", "World!")
Enter fullscreen mode Exit fullscreen mode

Output:

Hello World!
Enter fullscreen mode Exit fullscreen mode

2. fmt.Println

  • Purpose: Prints values directly to the console, with a newline at the end.
  • No Formatting Specifiers: Concatenates values with spaces between them.
  • Auto Line Break: Automatically adds a newline at the end.

Example:

fmt.Println("Hello", "World!")
Enter fullscreen mode Exit fullscreen mode

Output:

Hello World!
Enter fullscreen mode Exit fullscreen mode

3. fmt.Printf

  • Purpose: Prints values directly to the console with formatting specifiers.
  • Formatting Specifiers: Uses %s, %d, %v, etc.
  • No Auto Line Break: Doesn't automatically add a newline; you need to specify \n.

Example:

fmt.Printf("Name: %s, Age: %d\n", "Alice", 25)
Enter fullscreen mode Exit fullscreen mode

Output:

Name: Alice, Age: 25
Enter fullscreen mode Exit fullscreen mode

4. fmt.Sprint

  • Purpose: Concatenates values into a string without formatting.
  • No Printing: Doesn't print to the console, just returns the string.
  • No Line Break: No newline included.

Example:

message := fmt.Sprint("Hello", " ", "World!")
fmt.Println(message)
Enter fullscreen mode Exit fullscreen mode

Output:

Hello World!
Enter fullscreen mode Exit fullscreen mode

5. fmt.Sprintln

  • Purpose: Concatenates values into a string with a newline.
  • No Printing: Doesn't print to the console, just returns the string.
  • Auto Line Break: Adds a newline to the returned string.

Example:

message := fmt.Sprintln("Hello", "World!")
fmt.Print(message)
Enter fullscreen mode Exit fullscreen mode

Output:

Hello World!
Enter fullscreen mode Exit fullscreen mode

6. fmt.Sprintf

  • Purpose: Formats values into a string using format specifiers.
  • No Printing: Doesn't print to the console, just returns the formatted string.
  • No Line Break: No newline unless explicitly added.

Example:

message := fmt.Sprintf("Name: %s, Age: %d", "Alice", 25)
fmt.Println(message)
Enter fullscreen mode Exit fullscreen mode

Output:

Name: Alice, Age: 25
Enter fullscreen mode Exit fullscreen mode

7. fmt.Fprint

  • Purpose: Writes formatted output to a specified writer (like files, buffers, etc.).
  • For Advanced Usage: Typically used with files or custom outputs.

Example:

import (
    "os"
    "fmt"
)

func main() {
    fmt.Fprint(os.Stdout, "Hello World!")
}
Enter fullscreen mode Exit fullscreen mode

Output:

Hello World!
Enter fullscreen mode Exit fullscreen mode

Summary Table:

Function Purpose Returns a String? Directly Prints? Supports Formatting? Auto Newline?
fmt.Print Simple printing, no newline
fmt.Println Simple printing with newline
fmt.Printf Formatted printing
fmt.Sprint String concatenation (no print)
fmt.Sprintln String concatenation with newline
fmt.Sprintf Formatted string creation
fmt.Fprint Formatted printing to a writer

Take a look at my YouTube and GitHub

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay