Junior — Middle
Тавзеҳ диҳед дар бораи мафҳуми тағйирёбандаи глобалӣ ва хусусиятҳои он дар барнома.
sobes.tech AI
Ҷавоб аз AI
Дар саги дар Go — ин тағйирёбанда аст, ки берун аз функсияҳо эълон шудааст, одатан дар як пакет, ва дар тамоми пакет ё ҳатто аз дигар пакетҳо дастрас аст, агар экспорти карда шавад (бо ҳарфҳои калон).
Хусусиятҳои тағйирёбандаҳои глобалӣ:
- Дар оғоз кардани барнома, пеш аз иҷрои main, инициализат мешаванд.
- Дар доираи пакет ҳастанд, агар номи онҳо бо ҳарфи хурд оғоз шавад, ё экспорти карда шаванд, агар бо ҳарфи калон оғоз шаванд.
- Барои нигоҳ доштани ҳолат, ки аз функсияҳои гуногун дастрас аст, истифода мешаванд.
- Мушкилот бо дастрасии ҳамзамон дар барномаҳои бисёрсӯзишворӣ метавонанд ба вуҷуд оянд, бинобар ин онҳо одатан ниёз ба ҳамоҳангсозӣ (масалан, бо mutex) доранд.
Маслиҳат барои истифодаи тағйирёбандаҳои глобалӣ:
package main
import "fmt"
var counter int = 0 // тағйирёбандаи глобалӣ
func increment() {
counter++
}
func main() {
increment()
fmt.Println(counter) // Натиҷа 1 мебарорад
}
Истифодаи тағйирёбандаҳои глобалӣ бояд кам карда шавад, то мушкилоти нигоҳдорӣ ва санҷишро пешгирӣ кунад.