We use these three functions to print output messages in Go programming.
fmt.Print()
fmt.Println()
fmt.Printf()
Note: All these functions are defined under the fmt
package. So, we must import the fmt
package before we can use these functions.
Go fmt.Print()
Let's take an example.
// Program to illustrate fmt.Print() package main // import fmt package import "fmt" func main() { fmt.Print("Hello, ") fmt.Print("World!") }
Output
Hello World!
Here, the fmt.Print()
function prints the content inside parentheses ()
.
Print Variables
Here's how we print variables in Go programming.
// Program to illustrate fmt.Print() package main // import the fmt package import "fmt" func main() { name := "John" fmt.Print(name) }
Output
John
Note: We must not wrap variables inside quotation marks while printing. Otherwise, it's considered as a string.
Printing Multiple Values At Once
We can print multiple values and variables at once by separating them with commas. For example,
// Program to illustrate fmt.Print() package main // import the fmt package import "fmt" func main() { name := "John" fmt.Print("Name: ", name) }
Output
Name: John
Go fmt.Println()
The way fmt.Println()
works is similar to how fmt.Print()
works with a couple of differences.
fmt.Println()
prints a new line at the end by default.- If we print multiple values and variables at once, a space is added between the values by default.
// Program to illustrate the use of Println() function package main import "fmt" // prints output in different lines func main() { currentSalary := 50000 fmt.Println("Hello") fmt.Println("World!") fmt.Println("Current Salary:", currentSalary) }
Output:
Hello World! Current Salary: 50000
Things to notice:
- All the output messages are printed in separate lines
- A space is added after
Current Salary:
by default
Go fmt.Printf()
The fmt.Printf()
function formats the strings and sends them to the screen. Let's see an example.
currentAge := 21 fmt.Printf("Age = %d", currentAge)
Here, the fmt.Printf()
function replaces the %d
with the value of currentAge
.
By the way, %d
is a format specifier that replaces integer variables with their values.

In Go, every data type has a unique format specifier.
Data Type | Format Specifier |
---|---|
integer | %d |
float | %g |
string | %s |
bool | %t |
Example: Using %g to print Float Values
// Program to print an integer using its format specifier %g package main import "fmt" func main() { var number annualSalary = 65000.5 fmt.Printf("Annual Salary: %g", annualSalary) }
Output
Annual Salary: 65000.5
Here, fmt.Printf()
converts the "Annual Salary: %g"
string to "Annual Salary: 65000.5"
.
Example: Using format specifiers to hold value of a variable
A format string may also have multiple format specifiers.
package main import "fmt" func main() { var name = "John" age := 23 fmt.Printf("%s is %d years old.", name, age) }
Output
John is 23 years old.
Here's how this code works:

Printing Without Package
It's also possible to print output without using the fmt
package. For that, we use print()
and println()
. For example,
// Program to print output using print() function package main func main() { println("Using println instead of fmt.Println") print("Using print instead of fmt.Print") }
Output
Using println instead of fmt.Println Using print instead of fmt.Print
Here, we have used println()
and print()
instead of fmt.Println()
and fmt.Print()
respectively.
Note: It's recommended to use the fmt
package for printing. We usually use println()
, print()
only for debugging purposes. To learn more, visit fmt.Println() Vs println() in Go programming.