将参数作为接口传递
Passing a parameter as an interface
在 Go 中,当您将参数传递给采用接口的函数时究竟会发生什么?具体是引用传递还是值传递?
如果您将接口值传递给采用接口的函数,则它会在不进行任何进一步处理的情况下传递。
如果您将值传递给采用接口的函数,编译器会创建该值的副本,然后创建一个包含指向该副本的指针和值类型的接口,并将其传递。
如果将指针传递给采用接口的函数,编译器会创建一个包含该指针和类型的接口作为指向值的指针并将其传递。
在 Go 中,当您将参数传递给采用接口的函数时究竟会发生什么?具体是引用传递还是值传递?
如果您将接口值传递给采用接口的函数,则它会在不进行任何进一步处理的情况下传递。
如果您将值传递给采用接口的函数,编译器会创建该值的副本,然后创建一个包含指向该副本的指针和值类型的接口,并将其传递。
如果将指针传递给采用接口的函数,编译器会创建一个包含该指针和类型的接口作为指向值的指针并将其传递。