Junior
Aké typy údajov existujú v Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go existujú štyri kategórie dátových typov:
-
Základné typy (Basic types) - preddefinované kompilátorom.
- Logické:
bool - Číselné:
- Celé čísla:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Plávajúce čísla:
float32,float64 - Komplexné čísla:
complex64,complex128
- Celé čísla:
- Reťazce:
string
- Logické:
-
Zhlukové typy (Aggregate types) - kolekcie pevnej veľkosti.
- Poľia:
[n]T(kdenje veľkosť,Tje typ prvkov) - Štruktúry:
struct {}(kolekcia pomenovaných polí rôznych typov)
- Poľia:
-
Referenčné typy (Reference types) - typy odkazov, odovzdávajú sa odkazom, ukladajú ukazovateľ na základné údaje.
- Slicing:
[]T(dynamické pole založené na poli) - Mapy:
map[K]V(kolekcia párov kľúč-hodnota) - Ukazovatele:
*T(ukladajú adresu premennej) - Kanály:
chan T,chan<- T,<-chan T(pre synchronizáciu a komunikáciu medzi gorutinami) - Funkcie:
func(...) (...)(typ je podpis funkcie)
- Slicing:
-
Rozhrania (Interface types) - definujú sadu podpisov metód, ktoré implementujú typy údajov.
- Rozhrania:
interface{}(prázdne rozhranie),interface{ methodName(...) ... }
- Rozhrania:
Príklady:
// Základné typy
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Zhlukové typy
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Pole
type Person struct { // Štruktúra
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Referenčné typy
var slice []int = []int{1, 2, 3} // Slicing
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Mapa
var ptr *int = &age // Ukazovateľ
var dataChan chan int = make(chan int) // Kanál
var myFunc func(int) int = func(x int) int { return x * 2 } // Funkcia
// Rozhrania
var i interface{} = "anything" // Prázdne rozhranie
type Shape interface { // Rozhranie
Area() float64
}