Go Basics

Go Data Types: int, float64, bool, rune, string

The basic types of Go, how to print them with Printf, and why conversions are always written out.

  • Beginner
  • 2 min read
  • 1 runnable example
What you'll learn
  • int, float64, bool, string
  • rune
  • Explicit conversions
Value → type
30int
19.99float64
truebool
'G'rune (int32)

One type per variable

Go is statically typed: every variable has one type that never changes. The types you will use most are int, float64, bool, string and rune, which is one Unicode character.

Go never converts numbers for you, so float64(age) is needed before adding a float. Printf formats values with verbs: %d for integers, %.2f for two decimals, %t for booleans, %c for a character and %T for the type. A rune is another name for int32.

Key points

  1. Go never converts numbers for you: write float64(age).
  2. A rune is one Unicode character.
  3. %T prints the type of a value.

Runnable Go example

Go
Run code →
main.go
package main

import "fmt"

func main() {
	var age int = 30
	var price float64 = 19.99
	var ready bool = true
	var initial rune = 'G'
	var name string = "Gopher"

	total := float64(age) + price // conversions are always explicit
	fmt.Printf("%d %.2f %t %c %s\n", age, price, ready, initial, name)
	fmt.Printf("total = %.2f\n", total)
	fmt.Printf("%T %T %T\n", age, price, initial)
}
Get a Run button for this example Result of running the code
30 19.99 true G Gopher
total = 49.99
int float64 int32

Practice

Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.

Finished this lesson?

Mark it as learned to track your progress.

Practice with a challenge

Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.

All challenges