Junior
Millised andmetüübid on Go-s?
sobes.tech AI
Vastus AI-lt
Go keeles on neli andmetüübi kategooriat:
-
Põhitüübid (Basic types) - eelnevalt määratletud kompilaatori poolt.
- Tõeväärtuslikud:
bool - Arvulised:
- Täisarvud:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Ujukomaarvud:
float32,float64 - Kompleksarvud:
complex64,complex128
- Täisarvud:
- Ridad:
string
- Tõeväärtuslikud:
-
Kogumitüübid (Aggregate types) - fikseeritud suurusega kogumid.
- Massiivid:
[n]T(kusn- suurus,T- elementide tüüp) - Struktuurid:
struct {}(nimetatud väljade kogum)
- Massiivid:
-
Viidatüübid (Reference types) - viited, mis edastatakse viitega, hoiavad viidet põhandmetele.
- Slaidid:
[]T(dünaamiline massiiv, ehitatud massiivi põhjal) - Kaardid (Map):
map[K]V(võtme-väärtuse paarid) - Viited:
*T(hoiab aadressi) - Kanaleid:
chan T,chan<- T,<-chan T(sünkroniseerimine ja kommunikatsioon gorutinates) - Funktsioonid:
func(...) (...)(funktsiooni signatuur)
- Slaidid:
-
Liidese tüübid (Interface types) - määratlevad meetodite signatuurid, mida tüübid rakendavad.
- Liidesed:
interface{}(tühi liides),interface{ methodName(...) ... }
- Liidesed:
Näited:
// Põhitüübid
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Kogumitüübid
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Massiiv
type Person struct { // Struktuur
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Viidatüübid
var slice []int = []int{1, 2, 3} // Slaid
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Kaart
var ptr *int = &age // Viit
var dataChan chan int = make(chan int) // Kanal
var myFunc func(int) int = func(x int) int { return x * 2 } // Funktsioon
// Liidese tüübid
var i interface{} = "anything" // Tühi liides
type Shape interface { // Liides
Area() float64
}