对不起这个基本问题。我是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中的 setter/getter 概念吗?
最佳答案
如果要使用setter,则应使用方法声明:
func(pct *ProtectedCustomType) SetAge (age int) {
pct.age = age
}
然后您将可以使用:
pct.SetAge(23)
这种声明使您可以在结构上执行功能,
通过使用
(pct *ProtectedCustomType)
您正在传递指向结构的指针,因此对其结构的操作会更改其内部
表示。
您可以在this link下阅读有关这种功能的更多信息,或者
在official documentation下。