在函数内设置空接口{}类型的变量的值

这是我正在努力让它工作的代码。我想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}

{}

我想在函数中所做的更改反映在 main这是我正在努力让它工作的代码。我想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}

{}

我想在函数中所做的更改反映在 main


斯蒂芬大帝
浏览 90回答 1
1回答

qq_遁去的一_1

接口参数包含一个指向用户结构的指针。您必须使用类型断言获取该指针并将新用户结构复制到目标结构:func getUser(result interface{}) {    *result.(*User) = User{name: "some name"}    fmt.Println(result)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go