Junior
რა ძირითადი მონაცემთა სტრუქტურებია Go-ში?
sobes.tech AI
პასუხი AI-სგან
Go-ში არსებობს შემდეგი ძირითადი შიდა (primitive) და კომპოზიტური (composite) მონაცემთა სტრუქტურები:
შიდა:
- ბულიანი (
bool) - რიცხვითი ტიპები:
- მთელი რიცხვები (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - მერყევი წერტილის რიცხვები (
float32,float64) - კომპლექსური რიცხვები (
complex64,complex128) - ბაიტი (
byte- псევდონიმიuint8) - რუნი (
rune- псევდონიმიint32, წარმოადგენს Unicode სიმბოლოს)
- მთელი რიცხვები (
- სტრიქონები (
string)
კომპოზიტური:
- მასივები (
array)- განსაზღვრული ზომით.
var arr [5]int // 5 მთელი რიცხვიანი მასივი - სლაისები (
slice)- დინამიური ზომა, დაფუძნებულია მასივებზე.
var s []int // ინიციალიზებული სლაისი s = make([]int, 5, 10) // სლაისი სიგრძით 5 და მოცულობით 10 - რუკები (
map)- არათანაზომადი წყვილები გასაღებით და მნიშვნელობით.
m := make(map[string]int) // რუკა, სადაც გასაღებები `string`, მნიშვნელობები `int` - სტრუქტურები (
struct)- ტიპიზებული ველების კოლექცია.
type Person struct { Name string Age int } - პოინტერები (
pointer)- ინახავს მეხსიერების ბლოკის მისამართს.
var x int = 10 var p *int = &x // p მიუთითებს x-ზე - ფუნქციები (
func)- გოლანგში ფუნქციები პირველი კლასის ტიპებია:
type MyFunc func(int) string // ფუნქციის ტიპი - არხები (
channel)- გამოიყენება სინქრონიზაციისა და მონაცემთა გაცვლისთვის გორუტინებს შორის.
ch := make(chan int) // ბუშტუკის არხი `int`-ისთვის - ინტერფეისები (
interface)- წარმოადგენს მეთოდების კოლექციას, რომელსაც ტიპი უნდა განახორციელოს:
type Reader interface { Read(p []byte) (n int, err error) }
ასევე უნდა აღინიშნოს სხვა მნიშვნელოვანი კომპოზიტური ტიპები:
- ბაიტების სლაისი (
[]byte) - რუნების სლაისი (
[]rune)
ეს მონაცემთა სტრუქტურები უზრუნველყოფს მოქნილობას და პროდუქტიულობას Go-ში ფართო სპექტრის ამოცანებისთვის.