Junior
Koje vrste podataka postoje u Go?
sobes.tech АИ
Одговор од АИ
U jeziku Go postoje četiri kategorije tipova podataka:
-
Osnovni tipovi (Basic types) - unapred definisani od strane kompajlera.
- Logički:
bool - Numerički:
- Celi brojevi:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Brojevi sa pokretnom zarezom:
float32,float64 - Kompleksni brojevi:
complex64,complex128
- Celi brojevi:
- Nizovi:
string
- Logički:
-
Složeni tipovi (Aggregate types) - kolekcije fiksne veličine.
- Nizovi:
[n]T(gde jenveličina,Ttip elemenata) - Strukture:
struct {}(kolekcija imenovanih polja različitih tipova)
- Nizovi:
-
Referentni tipovi (Reference types) - tipovi referenci, prosleđuju se putem reference, čuvaju pokazivač na osnovne podatke.
- Sejti:
[]T(dinamički niz, zasnovan na nizu) - Mape:
map[K]V(kolekcija parova ključ-vrednost) - Pokazivači:
*T(čuvaju adresu promenljive) - Kanali:
chan T,chan<- T,<-chan T(za sinhronizaciju i komunikaciju između gorutina) - Funkcije:
func(...) (...)(tip je potpisa funkcije)
- Sejti:
-
Interfejsni tipovi (Interface types) - definišu skup potpisa metoda koje implementiraju tipovi podataka.
- Interfejsi:
interface{}(prazan interfejs),interface{ methodName(...) ... }
- Interfejsi:
Primeri:
// Osnovni tipovi
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Složeni tipovi
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Niz
type Person struct { // Struktura
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Referentni tipovi
var slice []int = []int{1, 2, 3} // Sejt
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Mapa
var ptr *int = &age // Pokazivač
var dataChan chan int = make(chan int) // Kanal
var myFunc func(int) int = func(x int) int { return x * 2 } // Funkcija
// Interfejsni tipovi
var i interface{} = "anything" // Prazan interfejs
type Shape interface { // Interfejs
Area() float64
}