- 如何在main方法中操作objcetA的test方法时,对传递进来的参数修改同时对原对象也进行修改,类似传地址的概念
package main
import "fmt"
type ObjectA struct {
Config interface{}
}
func (ObjectA) test(param1 interface{}) {
switch param1.(type) {
case string:
param1 = "world"
fmt.Println("string")
case *string:
*param1.(*string) = "world"
fmt.Println("*string")
case *ObjectB:
param1.(*ObjectB).Name = "name1"
fmt.Println("*objectB")
case ObjectB:
fmt.Println("ObjectB")
}
}
type ObjectB struct {
Name string
}
func main() {
a := ObjectA{}
s := "string"
a.test(&s)
object := ObjectB{};
a.test(&object)
fmt.Println(object)
fmt.Println(s)
}
起因是想构建一个对象A,对象A提供一个配置属性,该属性允许传递string和另外一个对象B,传递过来的值修改同时能够影响外面的值,请教下这种情况该如何设计?
不是有接受者吗?你为啥不定义一个接受者参数?