Go 语言的 Setter

2024-02-29

抱歉问这个基本问题。我是 Go 语言的新手。

我有一个名为的自定义类型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 中实现 getter-setter 概念吗?


如果你想有setter,你应该使用方法声明:

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

然后您将能够使用:

pct.SetAge(23)

这种声明使您能够在结构上执行函数, 通过使用

(pct *ProtectedCustomType)

您正在将指针传递给您的结构,因此对其进行的操作会更改其内部 表示。

您可以在下面阅读有关此类功能的更多信息这个链接 http://golangtutorials.blogspot.com/2011/06/methods-on-structs.html, 或者 在下面官方文档 https://golang.org/ref/spec#Method_declarations.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go 语言的 Setter 的相关文章

  • golang - 省略 json 属性进行序列化的优雅方法

    我有一个用户结构 其中包含密码等敏感字段 type User struct UID string json uid binding required Password string json password binding require
  • 使用反射从泛型结构获取类型参数

    想象一下我有以下结构 type MyGeneric T string int struct 我想在创建新的 MyGeneric 时检查用于实例化该结构的泛型是字符串还是 int myGenericString MyGeneric strin
  • 从私钥中提取公钥

    我尝试通过以下方式以编程方式完成步骤 2 1 openssl genrsa out signing pem 2048 2 openssl rsa in signing pem outform PEM pubout out signing p
  • Golang:获取切片的类型

    我正在使用 Reflect 包来获取任意数组的类型 但是得到 prog go 17 cannot use sample array1 type int as type interface in function argument proce
  • 从恐慌中恢复的程序未按预期退出

    根据我的理解 当恐慌恢复时 我期望程序退出并表现出正常行为 但事实并非如此 我期望最后一行打印 程序结束 是正确的吗 如果出现运行时错误 它不会被打印 是吗 package main import fmt func main defer f
  • 处理变量的范围:内部循环

    作为一名直接进入 Go 的 JS 开发者 如果长度超过commits不止一个 我没有太多时间来完成这件事 而且我搜索的时间比我希望的要长 关于如何重组它或让它发挥作用有什么想法吗 case github PushPayload push p
  • 在 Golang Server 中接受持久的 tcp 连接

    我正在尝试使用 Go 并且想创建一个 TCP 服务器 我可以通过 telnet 访问该服务器 发送命令并接收响应 const CONN HOST localhost CONN PORT 3333 CONN TYPE tcp func mai
  • 从头开始使用映像部署无法启动

    我正在使用以下内容构建图像Dockerfile FROM golang 1 19 2 bullseye as builder COPY src src WORKDIR src RUN CGO ENABLED 1 go build race
  • 如何更改“go build”的库路径

    我正在尝试与 goncurses 一起工作 在 Centos 6 上 ncurses 库很旧 5 7 想要 5 9 所以我从源代码构建了 ncurses 并将其安装到 usr lib usr include 等中 如何告诉 go get 针
  • 使用私有 git 存储库时的 go 工作区结构

    当你不使用 github 时 我一直在尝试找出 go 代码 工作区的标准文件夹布局 结构 我可以看到如何go get在获取 github 项目时有效 但假设我自己的 git 项目不会有 github com username project
  • go:找到模块但不包含包

    我正在尝试安装 go 的网络包 但收到 不包含包错误 终端截图 我咨询过 go 模块 latest 已找到但不包含包 https stackoverflow com questions 62974985 go module latest f
  • 读取一个文本文件,替换其中的单词,输出到另一个文本文件

    所以我试图在 GO 中编写一个程序来获取一个充满代码的文本文件并将其转换为 GO 代码 然后将该文件保存到 GO 文件或文本文件中 我一直在试图弄清楚如何保存对文本文件所做的更改 但我可以看到更改的唯一方法是通过 println 语句 因为
  • 使用 Golang 通道处理 HTTP 请求

    我正在尝试构建一个简单的 Golang Appengine 应用程序 它使用通道来处理每个 http 请求 原因是我希望每个请求执行合理的大型内存计算 并且每个请求都以线程安全的方式执行 即来自并发请求的计算不会混合 这一点很重要 本质上
  • formatFloat :将浮点数转换为字符串[重复]

    这个问题在这里已经有答案了 http golang org pkg strconv http golang org pkg strconv http play golang org p 4VNRgW8WoB http play golang
  • golang:使用 gin 路由器服务 net.Conn

    我有一个处理传入 TCP 连接的函数 func Handle conn net Conn error 另外 我有一个初始化的 gin 路由器 带有已实现的句柄 router gin New router GET router POST Th
  • 将绝对路径和相对路径组合起来得到新的绝对路径

    我正在编写一个程序 其中一个组件必须能够采用给定的路径 例如 help index html or help 和基于该位置的相对路径 例如 otherpage index html or sub dir of help or help2 h
  • 当所有通道都关闭时中断 select 语句

    我有两个独立生成数据的 goroutine 每个将其发送到一个通道 在我的主 goroutine 中 我想在每个输出进入时使用它们 但不关心它们进入的顺序 每个通道在耗尽其输出时都会自行关闭 虽然 select 语句是像这样独立使用输入的最
  • 具有多个等待组的管道中通道范围内的死锁

    我正在练习通过同时将计算分为 100 组来计算阶乘的挑战 我解决了 WaitGroups 上的很多问题 但仍然处于calculateFactorial函数我在通道部分的范围上陷入了僵局 希望有人能指出这个问题 谢谢 package main
  • 在 Go 中执行字节数组

    我正在尝试在 Go 程序中执行 shellcode 类似于使用其他语言执行此操作的方式 示例 1 C 程序中的 Shellcode https stackoverflow com questions 16626857 shellcode i
  • 使用 google.protobuf.Timestamp 在 Go 中解析带有时区偏移的日期时间戳

    我正在创建一个将使用 GRPC 和 protobuf 的 Go 应用程序 我的 RPC 服务应获取包含类型的消息google protobuf Timestamp 解析它并最终将其保存在数据库中或对其执行更多操作 我对什么被认为是该类型的有

随机推荐

  • 串行端口“关闭”事件永远不会触发

    我正在使用nodeJSSerialPort用于连接计算机端口的包 关于套餐close event here https github com EmergingTechnologyAdvisors node serialport module
  • ptr->你好(); /* 与 */ (*ptr).hello();

    我正在学习 C 指针和 gt 操作员对我来说似乎很奇怪 代替ptr gt hello 一个人可以写 ptr hello 因为它似乎也有效 所以我认为前者只是一种更方便的方法 是这样还是有什么区别 gt 运算符是只是语法糖因为 ptr hel
  • jOOQ fetch 与 fetchResultSet 以及 Kotlin 中的关闭连接

    我使用 Kotlin 与 HikariCP 和 jOOQ 来查询我的数据库 我开始意识到这段代码按预期工作 获取行并随后关闭连接 class CountriesService private val datasource DataSourc
  • 正则表达式-如何在字符第一次出现时停止

    我正在尝试从标签中提取 src 值 到目前为止 我似乎能够提取 src 值和字符串中最后一个引号之间的字符串 String img border 0 src http i bookfinder com about booksellers l
  • matplotlib 桑基图中的连接流程

    我正在使用 matplotlibssankey功能 并且在连接两个流时存在问题 基本上 我只想连接流程Qab rekup到流的末尾Qzu rekup 参见屏幕截图 似乎很容易 但我仍然不知道如何管理它 Here s the screensh
  • 在开发系统上禁用 OutputCache

    我在 ASP net MVC 应用程序中使用 OutputCache 由于使用活动的 OutputCache 进行开发并不是很愉快 因此我想禁用开发系统 本地计算机和开发服务器 上的 OutputCache 做这个的最好方式是什么 这是一本
  • 将 df 转换为单独的观察结果[重复]

    这个问题在这里已经有答案了 我想将 df 从 计数 方法 案例数量 转变为 单独观察 方法 Example df lt dplyr tibble city c a a b b c c sex c 1 0 1 0 1 0 age c 1 2
  • 简化具有重复结果的嵌套 if/else?

    我正在尝试简化以下内容 function handleDirection src if src left if inverse tracker else tracker else if inverse tracker else tracke
  • 选择器的“完成”按钮的 Event_Handler

    我有一个包含项目列表的 xamarin 选择器 我想在 iPhone 上按下 完成 按钮和 Android 上按下 确定 按钮时删除选择器 我有删除选择器的代码 但我不知道 event Handler 可能是什么 Code Picker p
  • 安装蓝图时,环境上下文中不允许初始化程序错误

    我正在尝试使用 blueprintjs core我的项目中的库 但是 当我编译代码时 我收到许多这样的错误 node modules blueprintjs core dist common classes d ts 4 30 error
  • C# 中的 XML 多行注释 - 我做错了什么?

    根据本文 http blogs msdn com ansonh archive 2006 09 11 750056 aspx 可以获得多行 XML 注释 而不是使用 use 这是我对多行注释是什么以及我希望发生的情况的解释
  • Visual Studio 2005 清洁解决方案[重复]

    这个问题在这里已经有答案了 如果我有一个包含 10 个项目的解决方案 当我单击 清理解决方案 时 是否只是清理主启动项目解决方案中的 bin debug 或每个项目目录中的 bin debug 它针对当前选定的配置 例如调试 发布等 清理解
  • 在 ng2-select2 中使用 AJAX

    我的 angular2js 项目中有很多下拉菜单 我在用ng2 选择2 https github com NejcZdovc ng2 select2对于这些下拉菜单 在某些下拉列表中 我需要根据用户在 select2 搜索框中输入的字符串来
  • OpenAPI 规范 (YML/YAML):所有 $refs 替换或扩展为其定义(带有模式验证)

    我正在寻找一些解决方案或者一些脚本 可以帮助我通过模式验证替换 ref 或扩展其在 YML 文件中的定义 具体请看下面的例子 示例 使用 ref 输入 pets petId get summary Info for a specific p
  • 识别UIWebview的提交按钮点击

    我有一个带有多个按钮的 UIWebView 页面 需要识别点击的是哪个按钮UIWebView UIWebview加载内容的页面源码
  • 如何获取图片资源

    我应该如何获取imageButton的当前图像资源 我需要这样的东西 imageButton getImageResource 多谢 我认为你不能 当前的 API 不允许这样做 但如果你真的需要这个 你可以这样做 imageButton s
  • 为锦标赛系统分配奖品

    我正在寻找一种将数字分布到 x 个单位的方法 我什至不知道如何表达这个词 所以我举个例子 有一场锦标赛 总奖金为 1000 美元 我希望前 20 名获胜者 参赛者能够从中赢得一些东西 我需要一个数学算法 公式 将其分配给这些玩家 并让我有能
  • 在 Spring Boot 的 application.properties 中使用 env 变量

    我们正在开发一个Spring Boot Web应用程序 我们使用的数据库是MySQL 我们的设置是我们首先测试它locally 意味着我们需要在我们的PC上安装MySQL 然后我们推送到 Bitbucket Jenkins 自动检测到 Bi
  • 如何使 str.splitlines 方法不按十六进制字符分割行?

    我正在尝试使用 str splitlines 解析 GNU Strings 实用程序的输出 这是 GNU Strings 的原始输出 279304 9k pN n 279340 9k PN n 279376 9k
  • Go 语言的 Setter

    抱歉问这个基本问题 我是 Go 语言的新手 我有一个名为的自定义类型ProtectedCustomType我不希望其中的变量是set直接由调用者调用 而想要一个Getter Setter方法来做到这一点 下面是我的ProtectedCust