Go language pointer as function parameter
The Go
language allows pointers to be passed to functions by setting thepointer type on the parameters defined by the function.
The following example shows how to pass a pointer to a function and modify the value within the function after the function call:
Example
package main
import "fmt"
func main() {
/* Define local variables */
var a int = 100
var b int= 200
fmt.Printf("Value of a before exchange : %d\\n", a )
fmt.Printf("Value of b before exchange : %d\\n", b )
/* Calling a function to exchange values
* &a Address pointing to variable a
* &b Address pointing to variable b
*/
swap(&a, &b);
fmt.Printf("The value of a after exchange: %d\\n", a )
fmt.Printf("The value of b after exchange: %d\\n", b )
}
func swap(x *int, y *int) {
var temp int
temp = *x /* Save the value of x address */
*x = *y /* Assign y to x */
*y = temp /* Assign temp to y */
}
The above example allows the output result to be:
Value of a before exchange: 100
Value of b before exchange: 200
Value of a after exchange: 200
Value of b after exchange: 100