当前位置: > > > > 如何将函数内部创建的变量作为指针传递给另一个函数
如何将函数内部创建的变量作为指针传递给另一个函数
来源:stackoverflow
2024-04-27 22:45:37
0浏览
收藏
Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《如何将函数内部创建的变量作为指针传递给另一个函数》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!
问题内容
嗨,golang 新手,
如何将变量作为指针参数传递给另一个函数。
func B(temp *?, event *Event) {
temp["filla_a"] = event.Data["filla_a"]
return temp
}
func A(event *Event) {
temp := make(map[string]interface{})
temp["po_id"] = event.Data["id"]
temp = B(temp, event)
}
如何在 golang 中实现这一点?
解决方案
这是在 go 中执行此操作的方法:
package main
import (
"fmt"
)
type Event struct {
Data map[string]string
}
func main() {
e := new(Event)
e.Data = make(map[string]string)
e.Data["id"] = "THE_ID"
e.Data["filla_a"] = "THE_FILLA_A"
A(e)
}
func A(event *Event) {
temp := make(map[string]interface{})
temp["po_id"] = event.Data["id"]
B(temp, event)
fmt.Println(temp)
}
func B(temp map[string]interface{}, event *Event) map[string]interface{}{
temp["filla_a"] = event.Data["filla_a"]
return temp
}
我已假设/使 event 为 struct 并在程序中声明相同。
go 中的 map 是引用类型(或者更好地说它具有对内部数据结构的指针引用),因此不需要传递 map 的 pointer,只需传递/返回变量本身即可。
另一方面,struct(main() 函数中 e 的类型)是 value 类型,需要作为指针传递以持久保存来自被调用函数的更新。
注意:new 关键字创建一个指向该类型的指针。因此main()函数中的变量e实际上是指向type event的指针。
go演示:
希望有帮助。
今天关于《如何将函数内部创建的变量作为指针传递给另一个函数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注米云公众号!
