Funktsiya ichida uning qavslar doirasida joylashgan jamoat sifatida e'lon qilingan o'zgaruvchiga kirish mumkinmi?
sobes.tech AI
AIdan javob
Go'da, o'zgaruvchining ko'lamini uni ta'riflagan blok bilan cheklangan. Agar o'zgaruvchi funksiya ichidagi qavslar ichida e'lon qilingan bo'lsa (mahalliy o'zgaruvchi), u faqat shu funksiya va uning ichki bloklari ichida mavjud bo'ladi. Go'da o'zgaruvchining ko'rinish darajasi (eksport qilinishi) uning nomidagi katta harf bilan belgilanadi va bu boshqa paketlardan ko'rinishga taalluqlidir, funksiyaning ichida emas.
Shunday qilib, funksiya ichida, agar u shuningdek funksiya yoki tashqi ko'lamda e'lon qilingan bo'lsa, uning qavslarida e'lon qilingan o'zgaruvchiga kirish mumkin. Agar o'zgaruvchi funksiya ichida e'lon qilingan bo'lsa, u mahalliy va faqat shu funksiya ichida mavjud. Agar o'zgaruvchi funksiya tashqarisida e'lon qilingan va eksport qilingan (jamoatga ochiq), u ham funksiya ichida murojaat qilish mumkin.
Misol:
package main
import "fmt"
var PublicVar = "paket bo'ylab va boshqa paketlardan kirish mumkin"
func misol() {
localVar := "faqat misol ichida kirish mumkin"
fmt.Println(PublicVar) // jamoat o'zgaruvchiga kirish
fmt.Println(localVar) // mahalliy o'zgaruvchiga kirish
}
func main() {
misol()
}
Agar o'zgaruvchi funksiya ichida e'lon qilingan bo'lsa, u undan tashqarida mavjud bo'lmaydi, hatto uning nomi "jamoat" bo'lsa ham (katta harf bilan boshlansa).