= Go Data Types = <> ---- == String == A `string` is an immutable container of `uint8` bytes. Like other container types, `string` data can be operated on using: * element access (`str[0]`) and slice (`str[0:1]`) syntax * the built-in `len()` function * addition (`+`) and in-place addition (`+=`) operators for concatenation They are meant to represent text encoded in UTF-8, but not every byte is guaranteed to be valid Unicode. There are only a few instances where strings are implicitly encoded: * in `for _, r := range str`, the `r` is a Unicode rune * in `rs := []rune(str)`, `rs` is a string of Unicode runes In these cases, all invalid Unicode bytes are converted to `U+FFFD` (the replacement character). ---- == Bool == ---- == Numeric Types == * signed integers: `int8`, `int16`, `int32`, `int64`, and `int` * unsigned integers: `uint8`, `uint16`, `uint32`, `uint64`, and `uint` * `uintptr` * floating point numbers: `float32` and `float64` * complex numbers: `complex64` and `complex128` `byte` is an alias to `uint8`, and `rune` is an alias to `int32`. ---- == Pointer == ---- == Struct == ---- == Function == ---- == Container Types == * `array` * `slice` * `map` ---- == Channel == ---- == Interface == ---- CategoryRicottone