哈喽!今天心血来潮给大家带来了《通过 golang 中的方法更改类型的基础值》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万
哈喽!今天心血来潮给大家带来了《通过 golang 中的方法更改类型的基础值》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!
问题内容go 类型的实例可以更改其底层值吗?感谢上一个问题,我知道如果我的类型是结构体,我可以使函数的接收器成为指针并更改结构体字段。
但是,我对更改基础类型的值很感兴趣。考虑一个像这样的小程序
type Foo string
func (f *Foo) ChangeMe() {
val := Foo("Hello World")
f = &val
//fmt.Println(*f)
}
func main() {
f := Foo("Nope")
f.ChangeMe()
fmt.Println(f)
}
我天真的假设是“好吧,我创建了一个新的 foo("hello world")
,然后将 f
指向它。由于接收器是一个指针 (*foo
),这应该更改 main( )
。
但是,这不起作用。上面的程序仍然打印出“nope”
对我对 go 的错误假设以及实现我想做的事情的任何技术感兴趣。
您正在为 f
分配一个新的指针值,而不是取消引用它。
取消引用 f
并分配新的字符串值:
func (f *Foo) ChangeMe() {
*f = Foo("Hello World")
}
今天关于《通过 Golang 中的方法更改类型的基础值》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注编程网公众号!
--结束END--
本文标题: 通过 Golang 中的方法更改类型的基础值
本文链接: https://lsjlt.com/news/596602.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0