Junior
Kādi ir datu tipi Go?
sobes.tech AI
Atbilde no AI
Go valodā ir četras datu tipu kategorijas:
-
Pamattipi (Basic types) - iepriekš definēti kompilatora.
- Booleans:
bool - Skaitliskie:
- Veselie:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Peldošie punkti:
float32,float64 - Kompleksie skaitļi:
complex64,complex128
- Veselie:
- Virknes:
string
- Booleans:
-
Kopumu tipiem (Aggregate types) - fiksēta izmēra kolekcijas.
- Masīvi:
[n]T(kurn- izmērs,T- elementa tips) - Struktūras:
struct {}(kolekcija ar nosauktiem laukiem)
- Masīvi:
-
Atsauces tipi (Reference types) - atsauces, kas tiek nodotas ar atsauci, glabā norādi uz galīgiem datiem.
- Slaidus:
[]T(dinamisks masīvs, būvēts uz masīva pamata) - Kartes (Map):
map[K]V(atslēgas-vērtības pāri) - Norādes:
*T(glabā adresi) - Kanāli:
chan T,chan<- T,<-chan T(sinhronizācija un komunikācija gorutinās) - Funkcijas:
func(...) (...)(funkcijas paraksts)
- Slaidus:
-
Interfeisa tipi (Interface types) - definē metožu parakstus, kurus īsteno datu tipi.
- Interfeisi:
interface{}(tukša interfeiss),interface{ methodName(...) ... }
- Interfeisi:
Piemēri:
// Pamattipi
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Kopumu tipi
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Masīvs
type Person struct { // Struktūra
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Atsauces tipi
var slice []int = []int{1, 2, 3} // Slaidus
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Karte
var ptr *int = &age // Norāde
var dataChan chan int = make(chan int) // Kanāls
var myFunc func(int) int = func(x int) int { return x * 2 } // Funkcija
// Interfeisa tipi
var i interface{} = "anything" // Tukša interfeiss
type Shape interface { // Interfeiss
Area() float64
}