Sobes.tech
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-ում լայնածավալ խնդիրների համար։