Sobes.tech
Junior

Структураҳои асосии додаҳо дар Go кадомҳоянд?

sobes.tech AI

Ҷавоб аз AI

Дар забони Go мавҷуданд структураҳои асосӣ (примитивӣ) ва мураккаб (композитӣ) дарёфтҳои зерин:

Примитивӣ:

  • Арзишҳои мантиқи (bool)
  • Типҳои рақамӣ:
    • Суммавӣ (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Суммавӣ бо нуқтаи ҳаракаткунанда (float32, float64)
    • рақамҳои мураккаб (complex64, complex128)
    • Byte (byte - номи муқаррарии uint8)
    • Rune (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)
    • Дар Go, функсияҳо навъи дараҷаи аввал мебошанд.
    type MyFunc func(int) string // навъи функсия
    
  • Каналҳо (channel)
    • Барои ҳамоҳангсозӣ ва мубодилаи маълумот байни goroutine-ҳо истифода мешаванд.
    ch := make(chan int) // канал бе буфер барои int
    
  • Интерфейсҳо (interface)
    • Намояндагии маҷмӯи усулҳо, ки навъи бояд иҷро кунад.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Ҳамчунин, муҳим аст, ки дигар намудҳои мураккабро низ зикр кард, масалан:

  • Қатраҳои байт ([]byte)
  • Қатраҳои rune ([]rune)

Ин структураҳои маълумот барои чандирӣ ва самаранокӣ барои ҳалли гуногуни вазифаҳо дар Go таъмин мекунанд.