logo

Polyglot CheatSheet - Types

Last Updated: 2023-03-02

Go

bool

string

int  int8  int16  int32  int64
uint uint8 uint16 uint32 uint64 uintptr

byte // alias for uint8

rune // alias for int32
     // represents a Unicode code point

float32 float64

complex64 complex128

The int, uint, and uintptr types are usually 32 bits wide on 32-bit systems and 64 bits wide on 64-bit systems.

When you need an integer value you should use int unless you have a specific reason to use a sized or unsigned integer type.

The variable's type can be inferred from the value on the right hand side, depending on the precision of the constant.Check type:

v := 42
fmt.Printf("v is of type %T\n", v)

Type assertion: value.(string) asserts that value is a string, otherwise ok is false

if str, ok := value.(string); ok {
    return str
} else if str, ok := value.(Stringer); ok {
    return str.String()
}