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.