Funksiyada, ictimai elan edilmiş və onun mötərizələr sahəsində yerləşən dəyişənə daxil olmaq mümkündürmü?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da, dəyişənin görünmə sahəsi onun elan olunduğu blokla məhdudlaşır. Əgər dəyişən funksiyanın mötərizələri içində elan olunubsa (yerli dəyişən), o yalnız həmin funksiyada və onun iç içə bloklarında mövcuddur. Go-da dəyişənin görünürlüğü (ixrac edilə bilməsi) onun adının böyük hərflə başlaması ilə müəyyən edilir və bu, digər paketlərdən görünürlüğü göstərir, funksiyanın içində deyil.
Beləliklə, funksiyanın içində, onun mötərizələrində elan olunmuş dəyişənə, əgər o eyni funksiyada və ya xarici sahələrdə elan olunubsa, daxil olmaq mümkündür. Əgər dəyişən funksiyada elan olunubsa, o yerli sayılır və yalnız həmin funksiyada mövcuddur. Əgər dəyişən funksiyanın xaricində elan olunub və ixrac olunubsa (ictimai), ona funksiyada da müraciət etmək olar.
Misal:
package main
import "fmt"
var PublicVar = "bütün paketdə və digər paketlərdən əlçatandır"
func nümunə() {
localVar := "yalnız nümunə daxilində əlçatandır"
fmt.Println(PublicVar) // ictimai dəyişənə giriş
fmt.Println(localVar) // yerli dəyişənə giriş
}
func main() {
nümunə()
}
Əgər dəyişən funksiyada elan olunubsa, onun funksiyadan kənarda əlçatan olması mümkün deyil, hətta adı "ictimai" olsa belə (böyük hərflə başlayır).