```go
package main
import "fmt"
func main() {
a2 := "12435"
//想用过这个函数过去 给他重复赋值
a(&a2)
//
// 这 a2 的值 为5 应该怎么做呢
fmt.Println(a2)
}
func a(ap interface{}) {
ap = 5
}
```
你这个函数的接收参数是一个空接口,空接口可以接受很多类型的参数,那怎么知道你ap的类型?这个就得需要反射里面的类型断言,最后才能去设置这个变量的值。
#12
更多评论
```go
package main
import (
"encoding/json"
"fmt"
)
type s struct {
}
func main() {
a2 := "12435"
a(&a2)
fmt.Println(a2)
a1_str := map[string]string{
"a":"233",
}
a1_map := map[string]string{}
a1(a1_str,&a1_map)
fmt.Println("map 值",a1_map)
}
func a1( s map[string]string,smap interface{}) {
mb, _ := json.Marshal(s)
json.Unmarshal(mb,&smap)
}
func a(ap interface{}) {
ap = 5
}
```
```hash
//运行结果
12435
map 值 map[a:233]
```
忘解惑
#1