📝 Edit page
➕ Add page
Primitive data types
Inspired by Learn X in Y.
Note that this import this needed for the prints to work.
import (
"fmt"
)
Note: Unlike Java or C, in Go the variable type comes after the variable name.
Numeric
// Declare an int without specifying bits or signed/unsigned.
var x int
// Reassign.
x = 0
// Declare and assign as unsigned int.
var u uint = 7
// Inferred type. The var keyword is not needed and colon is used.
y := 1
var my_float float32
var my_float2 float64 = 0.1
my_float2 := 1.234
my_float3 := 1.
Strings
Basic:
s := "My string"
Raw string - useful for multi-line or when containing quotes.
raw_str := `My raw
string`
s := `ffprobe : -i "/media/Name of File.mp3" : -show_entries format=duration : -v quiet : -of csv=p=0`
Unicode:
unicode_utf8_str = 'Σ'
Size of numeric tpyes
Copied from: tutorial.
Go has the following architecture-independent unsigned and signed integer types:
| Type | Range |
|---|---|
| uint8 | 0 to 255 |
| uint16 | 0 to 65535 |
| uint32 | 0 to 4294967295 |
| uint64 | 0 to 18446744073709551615 |
| int8 | -128 to 127 |
| int16 | -32768 to 32767 |
| int32 | -2147483648 to 2147483647 |
| int64 | -9223372036854775808 to 9223372036854775807 |
Floats and complex numbers also come in varying sizes:
| Type | Description |
|---|---|
| float32 | IEEE-754 32-bit floating-point numbers |
| float64 | IEEE-754 64-bit floating-point numbers |
| complex64 | Complex numbers with float32 real and imaginary parts |
| complex128 | Complex numbers with float64 real and imaginary parts |
See IEEE-754 and Double precision floating.
There are also a couple of alias number types, which assign useful names to specific data types:
| Type | Description |
|---|---|
| byte | alias for uint8 |
| rune | alias for int32 |
A byte is the type of a character, unless it is a unicode character then it is rune.
e.g.
x := 'Σ'