Sobes.tech
Junior — Middle

Go tilida ma'lumotlarni inkapsulyatsiya qilish prinsipi qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Go tilida inkapsulyatsiya identifikatorlarning ko‘rinish qoidalari orqali amalga oshiriladi: agar o‘zgaruvchi, funksiya, metod yoki strukturadagi maydon nomi katta harf bilan boshlansa, u eksport qilinadi va boshqa paketlardan kirish mumkin; agar kichik harf bilan boshlansa, faqat joriy paket ichida kirish mumkin.

Shunday qilib, ma'lumotlarni yashirish uchun, strukturadagi maydonlarni kichik harf bilan yozish va ularga kirish uchun katta harf bilan metodlar (getterlar va setterlar) yozish kifoya.

Misol:

package user

type User struct {
    name string // maxfiy maydon
}

func NewUser(name string) *User {
    return &User{name: name}
}

func (u *User) GetName() string {
    return u.name
}

func (u *User) SetName(name string) {
    u.name = name
}
}

Bu yerda, name maydoni tashqi kirishdan yashirilgan, va GetName hamda SetName metodlari unga nazoratli kirish imkonini beradi.