gpt4 book ai didi

go - 在函数内设置空接口(interface){}类型的变量的值

转载 作者:行者123 更新时间:2023-12-01 22:32:06 24 4
gpt4 key购买 nike

这是我正在努力让它工作的代码。我想设置user func getUser 中的值,它采用 interface{}类型参数。
示例代码:https://play.golang.org/p/Zlhe9VEQhnD

package main

import (
"fmt"
)

type User struct {
name string
}

func getUser(result interface{}) {
result = User{name: "some name"}
fmt.Println(result)
}

func main() {
user := User{}
getUser(&user)
fmt.Println(user)
}

它给出了这个结果:
{some name}
{}
我想在函数中所做的更改反射(reflect)在 main
TIA

最佳答案

接口(interface)参数包含一个指向用户结构的指针。您必须使用类型断言获取该指针并将新用户结构复制到目标结构:

func getUser(result interface{}) {
*result.(*User) = User{name: "some name"}
fmt.Println(result)
}

关于go - 在函数内设置空接口(interface){}类型的变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63823108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com