登录
首页 >  Golang >  Go问答

如何将函数内部创建的变量作为指针传递给另一个函数

来源:stackoverflow

时间:2024-04-27 22:45:37 196浏览 收藏

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
}

我已假设/使 eventstruct 并在程序中声明相同。

go 中的 map 是引用类型(或者更好地说它具有对内部数据结构的指针引用),因此不需要传递 mappointer,只需传递/返回变量本身即可。

另一方面,structmain() 函数中 e 的类型)是 value 类型,需要作为指针传递以持久保存来自被调用函数的更新。

注意new 关键字创建一个指向该类型的指针。因此main()函数中的变量e实际上是指向type event的指针。

go演示:https://play.golang.org/p/Jbkm6z5a2Az

希望有帮助。

今天关于《如何将函数内部创建的变量作为指针传递给另一个函数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>