Junior
Jaké typy dat jsou v Go?
sobes.tech AI
Odpověď od AI
V jazyce Go existují čtyři kategorie datových typů:
-
Základní typy (Basic types) - předdefinované kompilátorem.
- Logické:
bool - Číselné:
- Celá čísla:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Plovoucí desetinná čísla:
float32,float64 - Složená čísla:
complex64,complex128
- Celá čísla:
- Řetězce:
string
- Logické:
-
Seskupené typy (Aggregate types) - kolekce pevné velikosti.
- Pole:
[n]T(kdenje velikost,Tje typ prvků) - Struktury:
struct {}(kolekce pojmenovaných polí různých typů)
- Pole:
-
Referenční typy (Reference types) - typy odkazů, předávají se odkazem, ukládají ukazatel na základní data.
- Řezové pole (Slices):
[]T(dynamické pole založené na poli) - Mapy:
map[K]V(kolekce párů klíč-hodnota) - Ukazatele:
*T(ukládají adresu proměnné) - Kanály:
chan T,chan<- T,<-chan T(pro synchronizaci a komunikaci mezi gorutinami) - Funkce:
func(...) (...)(typ je podpis funkce)
- Řezové pole (Slices):
-
Rozhraní (Interface types) - určují sadu podpisů metod, které implementují datové typy.
- Rozhraní:
interface{}(prázdné rozhraní),interface{ methodName(...) ... }
- Rozhraní:
Příklady:
// Základní typy
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Seskupené typy
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Pole
type Person struct { // Struktura
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Referenční typy
var slice []int = []int{1, 2, 3} // Řezové pole
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Mapa
var ptr *int = &age // Ukazatel
var dataChan chan int = make(chan int) // Kanál
var myFunc func(int) int = func(x int) int { return x * 2 } // Funkce
// Rozhraní
var i interface{} = "anything" // Prázdné rozhraní
type Shape interface { // Rozhraní
Area() float64
}