Sobes.tech
Junior — Middle

Kā tiek īstenots datu inkapsulācijas princips programmēšanas valodā Go?

sobes.tech AI

Atbilde no AI

Go valodā inkapsulācija tiek panākta, izmantojot identifikatoru redzamības noteikumu: ja mainīgā, funkcijas, metodes vai struktūras lauka nosaukums sākas ar lielo burtu, tas tiek eksportēts un ir pieejams no citiem pakotnēm; ja tas sākas ar mazo burtu, tas ir pieejams tikai pašreizējā pakotnē.

Lai slēptu datus, pietiek ar to, ka struktūras lauki sākas ar mazo burtu, un piekļuvei tiem tiek realizētas metodes ar lielo burtu (getter un setter).

Piemērs:

package user

type User struct {
    name string // privāts lauks
}

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
}
}

Šeit lauks name ir paslēpts no ārējas piekļuves, un metodes GetName un SetName nodrošina kontrolētu piekļuvi tam.