Сеттер в GoLang - PullRequest
       3

Сеттер в GoLang

0 голосов
/ 22 октября 2018

Извините за основной вопрос.Я новичок в GoLang.

У меня есть пользовательский тип с именем ProtectedCustomType, и я не хочу, чтобы переменные внутри него были set непосредственно вызывающим, скорее хочу Getter / Setter способы сделать это

Ниже моя ProtectedCustomType

package custom

type ProtectedCustomType struct {
    name string
    age int
    phoneNumber int
}

func SetAge (pct *ProtectedCustomType, age int)  {
    pct.age=age
} 

А вот моя main функция

import (
    "fmt"
    "./custom"
)
var print =fmt.Println

func structCheck2() {
    pct := ProtectedCustomType{}
    custom.SetAge(pct,23)

    print (pct.Name)
}

func main() {
    //structCheck()
    structCheck2()
}

Но я не смог продолжить.. не могли бы вы помочь мне в достижении концепции геттер-сеттер в GoLang?

1 Ответ

0 голосов
/ 22 октября 2018

Если вы хотите иметь setter, вы должны использовать объявление метода:

func(pct *ProtectedCustomType) SetAge (age int)  {
    pct.age = age
}

, и тогда вы сможете использовать:

pct.SetAge(23)

Этот тип объявлений позволяет вам выполнитьфункции в вашей структуре, используя

(pct *ProtectedCustomType)

Вы передаете указатель на вашу структуру, поэтому операции над ней изменяют ее внутреннее представление.

Вы можете прочитать об этом подробнеевид функции по по этой ссылке или по официальной документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...