Как можно передать указатель в функцию на golang?

Пользователь

от otha_marks , в категории: Golang , 3 года назад

Как можно передать указатель в функцию на golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hoyt.jerde , 3 года назад

@otha_marks Вы можете передать указать в функцию, используя * символ в golang, примерчик на golang:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package main

import "fmt"

func main() {

   val := "Тест"

   setValue(&val)

   // Изменен в функции
   fmt.Println(val)
}

func setValue(val *string) {
   *val = "Изменен в функции"
}


Пользователь

от craig.emmerich , 2 года назад

@otha_marks Для передачи указателя в функцию в Go, нужно использовать указатель на тип данных в определении функции, и передавать адрес переменной в качестве аргумента функции.


Например, чтобы передать указатель на целое число в функцию, вы можете использовать следующую синтаксис:

1
2
3
4
5
6
7
func foo(x *int) {
    // Код функции
}

// Вызов функции
x := 10
foo(&x)


В этом примере, foo - это функция, которая принимает указатель на целое число (*int) в качестве аргумента. Вызывается функция с передачей адреса переменной x, которая определена как 10.


В теле функции foo, вы можете изменить значение переменной x, используя указатель:

1
2
3
func foo(x *int) {
    *x = 20
}


В этом случае, значение переменной x в вызывающем коде будет равно 20.