Junior
Go tilida qanday ma'lumot turlari mavjud?
sobes.tech AI
AIdan javob
Go tilida to'rt turdagi ma'lumotlar mavjud:
-
Asosiy turlar (Basic types) - kompilyator tomonidan oldindan belgilangan.
- Mantiqiy:
bool - Raqamli:
- Butun sonlar:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Oqimli sonlar:
float32,float64 - Kompleks sonlar:
complex64,complex128
- Butun sonlar:
- Qatorlar:
string
- Mantiqiy:
-
Kengaytirilgan turlar (Aggregate types) - belgilangan o'lchamdagi to'plamlar.
- Massivlar:
[n]T(bu yerdano'lcham,Telement turi) - Tuzilmalar:
struct {}(turli nomlangan maydonlar to'plami)
- Massivlar:
-
Manba turlar (Reference types) - manba turlar, manba orqali o'tkaziladi, asosiy ma'lumotlarga ko'rsatkich saqlaydi.
- Slytslar:
[]T(dinamik massiv, massiv asosida) - Xaritalar (Map):
map[K]V(kalit-qiymat juftliklari to'plami) - Ko'rsatkichlar:
*T(o'zgaruvchining manzilini saqlaydi) - Kanal:
chan T,chan<- T,<-chan T(gorutinalar orasida sinxronizatsiya va aloqa uchun) - Funktsiyalar:
func(...) (...)(tipi funktsiyaning imzosi)
- Slytslar:
-
Interfeys turlari (Interface types) - metod imzolarini belgilaydi, ma'lumot turlari tomonidan amalga oshiriladi.
- Interfeyslar:
interface{}(bo'sh interfeys),interface{ methodName(...) ... }
- Interfeyslar:
Misollar:
// Asosiy turlar
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Kengaytirilgan turlar
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Massiv
type Person struct { // Tuzilma
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Manba turlari
var slice []int = []int{1, 2, 3} // Slyts
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Xarita
var ptr *int = &age // Ko'rsatkich
var dataChan chan int = make(chan int) // Kanal
var myFunc func(int) int = func(x int) int { return x * 2 } // Funktsiya
// Interfeys turlari
var i interface{} = "anything" // Bo'sh interfeys
type Shape interface { // Interfeys
Area() float64
}