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 таъмин мекунанд.