Junior
Go tilida qanday asosiy ma'lumotlar tuzilmalari mavjud?
sobes.tech AI
AIdan javob
Go dasturlash tilida quyidagi asosiy (primitive) va tarkibiy (composite) ma'lumotlar tuzilmalari mavjud:
Primitive:
- Mantiqiy qiymatlar (
bool) - Raqamli turlar:
- Butun sonlar (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Oqimli sonlar (
float32,float64) - Kompleks sonlar (
complex64,complex128) - Byte (
byte-uint8ning sinonimi) - Rune (
rune-int32ning sinonimi, Unicode belgisini ifodalaydi)
- Butun sonlar (
- Stringlar (
string)
Tarkibiy:
- Massivlar (
array)- Aniq o'lchamli.
var arr [5]int // 5 ta butun sonlardan iborat massiv - Slicerlar (
slice)- Dinamik o'lchamli, massivlar asosida.
var s []int // initsializatsiya qilinmagan slicer s = make([]int, 5, 10) // uzunligi 5, sig'imi 10 bo'lgan slicer - Xaritalar (
map)- Kalit-qiymat juftliklaridan iborat tartibsiz to'plam.
m := make(map[string]int) // kalitlari string, qiymatlari int bo'lgan xarita - Structlar (
struct)- Tiplashgan maydonlar to'plami.
type Person struct { Name string Age int } - Ko'rsatkichlar (
pointer)- Xotira hujayrasining manzilini saqlaydi.
var x int = 10 var p *int = &x // p x ga ishora qiladi - Funktsiyalar (
func)- Go tilida funktsiyalar birinchi darajali turlar.
type MyFunc func(int) string // funktsiya turi - Kanal (
channel)- Goroutine'lar o'rtasida sinxronizatsiya va ma'lumot almashish uchun ishlatiladi.
ch := make(chan int) // int uchun buffersiz kanal - Interfeyslar (
interface)- Bir turdagi metodlar to'plamini ifodalaydi, uni amalga oshirishi kerak.
type Reader interface { Read(p []byte) (n int, err error) }
Shuningdek, muhim boshqa tarkibiy turlar ham mavjud, masalan:
- Baytlar bo'yicha slicelar (
[]byte) - Rune bo'yicha slicelar (
[]rune)
Ushbu ma'lumotlar tuzilmalari Go'da keng qamrovli vazifalar uchun moslashuvchanlik va samaradorlikni ta'minlaydi.