Sobes.tech
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 мебарорад
}

Истифодаи тағйирёбандаҳои глобалӣ бояд кам карда шавад, то мушкилоти нигоҳдорӣ ва санҷишро пешгирӣ кунад.