如何在struct的方法中设置和获取字段

2023-11-24

创建这样的结构后:

type Foo struct {
    name string
}

func (f Foo) SetName(name string) {
    f.name = name
}

func (f Foo) GetName() string {
    return f.name
}

如何创建 Foo 的新实例并设置和获取名称? 我尝试了以下方法:

p := new(Foo)
p.SetName("Abc")
name := p.GetName()

fmt.Println(name)

没有打印任何内容,因为 name 为空。那么如何设置和获取结构体中的字段呢?

工作游乐场


评论(和工作)示例:

package main

import "fmt"

type Foo struct {
    name string
}

// SetName receives a pointer to Foo so it can modify it.
func (f *Foo) SetName(name string) {
    f.name = name
}

// Name receives a copy of Foo since it doesn't need to modify it.
func (f Foo) Name() string {
    return f.name
}

func main() {
    // Notice the Foo{}. The new(Foo) was just a syntactic sugar for &Foo{}
    // and we don't need a pointer to the Foo, so I replaced it.
    // Not relevant to the problem, though.
    p := Foo{}
    p.SetName("Abc")
    name := p.Name()
    fmt.Println(name)
}

Test it并采取围棋之旅了解有关方法和指针的更多信息,以及 Go 的基础知识。

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

如何在struct的方法中设置和获取字段 的相关文章

  • 在 Golang 中运行外部 python,捕获连续的 exec.Command Stdout

    所以我的 go 脚本将像这样调用外部 python cmd exec Command python game py cmd Stdout os Stdout cmd Stderr os Stderr go func err cmd Run
  • Golang 中的确定性 RSA 加密 - 如何在多次加密下为给定消息获得相同的结果

    对于下面的RSA加密代码 每次对同一条消息进行加密时 结果都会不同 我发现这是由于rand Reader in the rsa EncryptOAEP功能使其更加安全doc https pkg go dev crypto rsa Encry
  • golang中通道缓冲容量0和1的区别

    我已将通道缓冲区大小设置为零 例如var intChannelZero make chan int 当从intChannelZero将被阻止 直到intChannelZero有价值 另外 我将通道缓冲区大小设置为 1 例如var intCh
  • Swift 结构类型集

    说我有一个struct 可以是任何东西 struct Cube var x Int var y Int var z Int var width Int 然后我该如何创建一个Set这些点中 是否存在两个具有相同属性的对象 let points
  • 具有单个成员的结构是否具有与成员类型相同的性能?

    Does struct单个成员是否具有与成员类型相同的性能 内存使用和速度 Example 这段代码是一个struct与单个成员 struct my int int value 是的表现my int与 一样int 同意 harper htt
  • 将字符串解析为结构变量

    我试图将字符串解析为其中包含不同变量的结构向量 这是我到目前为止所拥有的 但似乎不起作用 struct client string PhoneNumber string FirstName string LastName string Ag
  • GoLang 中的 HTML 部分

    我刚刚开始使用 Go 我想用它创建一个网络应用程序 我现在尝试的是以handlebarsjs 式的方式使用模板 我想将页眉和页脚从主页中取出 以便可以将它们注入到每个网页上 我当前的设置应该是解析主页 页眉和页脚 HTML 文件并缓存它们
  • 有没有办法间歇性地执行重复性任务?

    有没有办法在 Go 中执行重复的后台任务 我在想类似的事情Timer schedule task delay period 在爪哇 我知道我可以用 goroutine 来做到这一点Time sleep 但我想要一些容易停止的东西 这是我得到
  • container_memory_working_set_bytes 与 process_resident_memory_bytes 和total_rss 之间的关系

    我希望了解以下关系 容器内存工作集字节 vs 进程驻留内存字节 vs 总计RSS 容器内存 rss 文件映射以便更好地配备OOM可能性警报系统 这似乎违背了我的理解 这让我现在感到困惑 如果容器 pod 运行单个进程 执行用 Go 编写的编
  • 指针上定义的方法仍然可以用值调用

    Effective Go 文档说明如下 关于接收者的指针与值的规则是 可以在指针和值上调用值方法 但只能在指针上调用指针方法 http tip golang org doc effective go html pointers vs val
  • Spring RestTemplate - 带有请求正文的http GET [重复]

    这个问题在这里已经有答案了 可能的重复 带请求正文的 HTTP GET https stackoverflow com questions 978061 http get with request body 我在这里读过一些不提倡通过 HT
  • 返回具有关联类型的特征

    struct A struct PropA struct B struct PropB trait AB type prop fn a self gt fn b self p Self prop gt impl AB for A type
  • 结构中未初始化字段没有 Clang 警告

    考虑以下结构 typedef struct foo int a int b foo 我的编译器不会对以下语句发出警告 foo m 300 为什么没有发出警告 我预计会收到警告 因为我没有为结构的最终字段提供任何值 这是我的编译器调用 cla
  • 为什么 DER ASN.1 大整数的解组在 Golang 中仅限于 SEQUENCE?

    我希望能够使用encoding asn1 包从 DER 文件中解组一个大整数 但它看起来只适用于整数序列 例如 这不起作用 这很奇怪 因为 Big Int 的编组效果很好 https play golang org p Wkj0jAA6bp
  • go json marshal 的默认大小写选项?

    我有以下结构要导出为 json type ExportedIncident struct Title string json title Host string json host Status string json status Dat
  • 如何解决 302 重定向上的 POST 更改为 GET 的问题?

    我网站的某些部分只能通过 HTTPS 访问 不是整个网站 安全与性能妥协 并且如果通过纯 HTTP 发送请求 则 HTTPS 是通过对安全部分的请求进行 302 重定向来强制执行的 问题是对于所有主流浏览器来说 如果您在 POST 上执行
  • 从 Golang 调用 C 函数

    我想在 Golang 中编写控制器逻辑并处理 json 和数据库 同时在 C 中使用我的数学处理模型 在我看来 调用 C 函数的开销必须尽可能低 就像设置寄存器 rcx rdx rsi rdi 一样 执行一些操作fastcall 并获取 r
  • Scala 中缺少多重集吗?

    我正在尝试 Scala 中的 Facebook Hacker Cup 2013 资格赛问题 对于第三个问题 我觉得需要一个有序的 Multiset 但在 scala 的 2 10 集合中找不到一个 scala 的集合中是否缺少此数据结构 会
  • C 指针混乱

    我想在内存中存储一 个字符串并稍后读取它 gt desc constant gt base id char malloc 200 sprintf gt desc constant gt base id f 1 printf gt s n g
  • 在 foreach 循环中更改另一个结构内的结构

    打印以下代码 调用 MyMethod 时 0 0 0 1 我希望它打印 0 0 1 1 为什么是这样 Code private struct MyStruct public MyInnerStruct innerStruct private

随机推荐

  • onAttach 活动为空

    在创建片段时 我遇到 getActivity 为空 因此 为了缩小问题范围 我在 onAttach Activity Activity 中保留了 Activity 的本地副本 根据定义 这是附加到 Activity 时的情况 但是 我在 o
  • 访问列表中类的属性

    我看到很多类似的问题 但没有一个有直接答案 我有一个List
  • 从 Crashlytics SDK 迁移到 Fabric 后出现构建错误

    最近 我们已将组织的 Crashlytics 帐户升级到 Fabric 我正在尝试在现有应用程序中用新的 Fabric SDK 替换旧的 Crashlytics SDK 我已经关注了迁移说明 而且基本上很轻松 除了我现在在尝试编译时收到构建
  • 将变量传递给带有字边界的 RegExp

    我必须传递变量的 RegExp 值并指向字边界 我有一个字符串要检查它是否包含变量值 我不知道如何将变量值和单词边界属性传递给正则表达式 所以像这样 var sa Sample var re new RegExp b sa alert re
  • Android 应用程序永远不会自动更新

    我在 Play 商店中有一个有点不寻常的 Android 应用程序 它在专用设备上 24 7 运行 它收集传感器数据 并不意味着在用于其他用途的手机上运行 我希望该应用程序能够在没有用户交互的情况下自动更新 但这似乎永远不会发生 为什么会这
  • 删除javascript中的第一个孩子

    我正在尝试删除第一个li in an ol使用 DOMremoveChild 但由于某种原因它不起作用 这是我的 JavaScript document getElementById queue removeChild document g
  • CrystalReports ReportDocument 数据库连接内存泄漏

    我过去几天一直在研究这个问题 但似乎无法弄清楚 我有一个c WinForms应用程序使用ReportDocument加载报表并将其放入 Crystal Report Viewer 中 以便用户可以预览它 目的是预览不同的统计数据 并且表单永
  • C++11 中局部静态变量初始化是线程安全的吗? [复制]

    这个问题在这里已经有答案了 我知道这是一个经常被问到的问题 但由于有很多变体 我想重申一下 并希望能得到一个反映当前状态的答案 就像是 Logger g logger static Logger lg return lg 变量 lg 的构造
  • setDragImage 不工作 - Java 7

    我正在尝试设置代码 以便用户可以从 JTable 拖动到 JList 并使用 TransferHandler 中的 Java 7 函数 setDragImage 自定义拖动图像 我在java教程网站上找到了一个示例 他们在其中教授Drag
  • SyntaxError:未终止的字符串文字 标记在字符串变量中不起作用

    请看我的代码 var id 1 var htmlText div ul class rtabs ul div class panel container div div div div div style display none Blah
  • 按嵌套对象的一个​​属性对对象数组进行排序

    我需要通过对象属性之一的一个属性来比较对象数组 我在做 List
  • 如何将 accdb 转换为 postgres 数据库

    我需要使用 accdb 数据库 为此需要将其导入 PostgreSQL 我相信这将是一个简单而直接的问题 我预计它已经解决了 但我没有找到一个简单的解决方案 我要补充一点 我无权访问 Access 笑 并且我的解决方案松散地依赖于此 如果那
  • 从 .crt 和 .key 文件创建 .jks 是否可能

    我向权威机构申请了 SSL 证书 首先 我在计算机上创建了一个 csr 和一个 key 文件并保存了它们 我发送了 csr 并取回了 crt 文件和我安装在服务器上的其他文件 对于具有 SSL 连接的 Apache 服务器来说 一切正常 但
  • OpenCart:如何准确填充 oc_category_path

    我使用在线服务将数据从其他电子商务网站传输到OpenCart一切似乎都已正确转移 然而 产品类别存在一个问题 类别已转移至oc category桌子 但是 看起来还有另一张表叫做oc category path如果我希望能够在管理员中编辑我
  • 使用 OpenGL ES 2.0 进行 GPGPU 编程

    我正在尝试在 GPU 上进行一些图像处理 例如中值 模糊 亮度等 总体思路是做类似的事情这个框架来自 GPU 宝石 1 我能够编写 GLSL 片段着色器来处理像素 因为我一直在效果设计器应用程序中尝试不同的东西 然而我不确定我应该如何完成任
  • .NET 的哪些部分在 iPhone 开发者的 Monotouch 中不可用?

    哪些键绑定未包含在内 您可以在以下位置找到 MonoTouch 的完整限制列表 Xamarin MonoTouch 中不可用的 NET 功能的简短列表 动态语言运行时 DLR 通用虚拟方法 泛型类型中的 P 调用 作为字典键的值类型 系统
  • 带索引变量的 Sympy 求和

    我尝试使用带有索引变量的 Sum 创建一个 sympy 表达式 如前所述here但是 我无法对该表达式进行羔羊化并给出一个数组来计算总和 这不可能吗 也许像这样 s Sum Indexed x i i 1 3 f lambda x Subs
  • 如何在 Rails 中设置 url 助手的默认主机?

    我想做这样的事情 config default host www subdomain example com 在我的一些配置文件中 这样object url帮手 ActionView Helpers UrlHelper 生成以以下内容开头的
  • 高效的算法可根据特定目标组成有效的表达式

    该问题表述为 给定一个仅包含数字 0 9 和一个目标值的字符串 返回通过在数字之间添加一些二元运算符 或 创建的所有表达式 以便它们计算为目标值 在某些情况下 可能没有任何二元运算符可以创建有效的表达式 在这种情况下 函数应返回空数组 新表
  • 如何在struct的方法中设置和获取字段

    创建这样的结构后 type Foo struct name string func f Foo SetName name string f name name func f Foo GetName string return f name