У меня есть структура, скажем:
type sample struct{
data []float64
}
Теперь я объявляю метод:
func (s sample) Get() *[]float64{
return &s.data
}
Я пытаюсь добавить к этому фрагменту указатель, полученный через Get ()
func main(){
example := sample{[]float64{1,2,3}}
//Here I will append:
pointerToArray := example.Get()
*pointerToArray = append(*pointerToArray, 4)
fmt.Println(example.Get()) // still shows only &{1,2,3}
}
У меня есть общее представление о том, почему это происходит: функция Get возвращает адрес своей локальной области, и я исправил это, изменив саму структуру на
type sample struct{
data *[]float64
}
, для которого код возвращает ожидаемое &{1,2,3,4}
Теперь, на мой вопрос: есть ли способ получить реальный указатель на поле в структуре с помощью метода получения без использования поля указателя непосредственно в структуре?