Golang 中的接口类型与指针
Contents
这是在Google Golang的Nuts上看到的 golang-nuts
当作为interface类型调用时,指针值没有更新?
func f(resp interface{}) {
resp = "abcd"
}
func main() {
var s string
f(&s)
fmt.Println(s) //prints blank?
}
interface
只是一个值,想要间接成指针,可以如下处理:
package main
import (
"fmt"
)
func f(resp interface{}) {
*resp.(*string) = "abcd"
}
func main() {
var s string
f(&s)
fmt.Println(s)
}
resp.(*string)
:转换为string
指针
*resp.(*string)
:这个表示指针的内容
*resp.(*string) = "abcd"
:将abcd
的值赋给指针的内容.