Sobes.tech
Junior — Middle

Πώς γίνεται η μεταβίβαση των επιχειρημάτων στις συναρτήσεις στη γλώσσα Go;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Go, τα επιχειρήματα στις συναρτήσεις περνιούνται με τιμή. Αυτό σημαίνει ότι κατά την κλήση μιας συνάρτησης, περνιούνται αντίγραφα των τιμών των επιχειρημάτων, και οι αλλαγές μέσα στη συνάρτηση δεν επηρεάζουν τις αρχικές μεταβλητές.

Εάν χρειάζεται να αλλάξετε την τιμή μιας μεταβλητής από τον κώδικα που καλεί, περνάτε έναν δείκτη σε αυτήν τη μεταβλητή. Τότε, η συνάρτηση λαμβάνει τη διεύθυνση και μπορεί να αλλάξει την τιμή σε αυτήν τη διεύθυνση.

Παράδειγμα περνώντας με τιμή και με δείκτη:

package main
import "fmt"

func incrementByValue(x int) {
    x = x + 1
}

func incrementByPointer(x *int) {
    *x = *x + 1
}

func main() {
    a := 5
    incrementByValue(a)
    fmt.Println(a) // Θα εμφανίσει 5, επειδή περνάει με τιμή

    incrementByPointer(&a)
    fmt.Println(a) // Θα εμφανίσει 6, επειδή περνάει με δείκτη
}