У меня есть интерфейс Character
, определенный как:
type Character interface {
SomeFunction()
}
И структура Player
определена как:
type Player struct{}
func (r *Player) SomeFunction() { }
// Some fields and other functions....
Предположим, у меня есть функция, определенная как
func TakeInterface(characterValue Character) {
// Do something
}
Загвоздка в том, что я хочу передать characterValue
как Player
по адресу, чтобы изменения, внесенные в него, были внесены в Player
, переданный вызывающим абонентом. В Java и C++ это легко, но я не могу понять это в Голанге. Я пробовал что-то вроде,
func TakeInterface(characterValue &Character) {
// Do something that changes characterValue
}
а затем передать указатель Player
, но затем я получаю сообщение об ошибке *Character.Character is pointer to interface, not interface
, когда пытаюсь передать адрес.
Как мне передать Player
по адресу функции, которая принимает указатель Character
/Character
? Я искал вокруг, но безуспешно. Спасибо!