Sobes.tech
Junior — Middle

Ինչպե՞ս է Go լեզվում իրականացվում տվյալների ինкапսուլյացիայի սկզբունքը։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում ինկապսուլյացիան հասնում է նշանավորության կանոնների միջոցով. եթե փոփոխականի, ֆունկցիայի, մեթոդի կամ կառուցվածքի դաշտի անունը սկսվում է մեծատառով, այն արտահանվում է և հասանելի է այլ փաթեթներից; եթե փոքրատառով սկսվում է, այն հասանելի է միայն ընթացիկ փաթեթում:

Տվյալների թաքցնելու համար բավական է կառուցվածքի դաշտերը գրել փոքրատառով, իսկ դրանց հասանելիությունը ապահովելու համար՝ մեծատառով մեթոդներ (getter և setter) իրականացնել:

Օրինակ՝

package user

type User struct {
    name string // մասնավոր դաշտ
}

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

Այստեղ, name դաշտը թաքնված է արտաքին հասանելիությունից, իսկ GetName և SetName մեթոդները ապահովում են վերահսկվող հասանելիություն։