Sobes.tech
Junior — Middle

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

sobes.tech AI

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

Στη γλώσσα Go, δεν υπάρχει ενσωματωμένη υποστήριξη για παραμέτρους συναρτήσεων με προεπιλεγμένες τιμές, όπως σε ορισμένες άλλες γλώσσες (π.χ., Python ή C++). Για να υλοποιήσετε μια παρόμοια συμπεριφορά, συνήθως χρησιμοποιούνται μία από τις ακόλουθες προσεγγίσεις:

  1. Υπερφόρτωση συναρτήσεων μέσω μεταβλητών παραμέτρων — περάστε έναν μεταβλητό αριθμό επιχειρημάτων στη συνάρτηση και ελέγξτε την παρουσία τους εσωτερικά:
func greet(name string, messages ...string) {
    msg := "Hello"
    if len(messages) > 0 {
        msg = messages[0]
    }
    fmt.Println(msg, name)
}

// Κλήσεις:
greet("Alice")           // Hello Alice
greet("Bob", "Hi")     // Hi Bob
  1. Χρήση δομών με ρυθμίσεις — περάστε στη συνάρτηση μια δομή με παραμέτρους, όπου μπορείτε να ορίσετε προεπιλεγμένες τιμές κατά τη δημιουργία:
type Config struct {
    Timeout int
}

func doSomething(cfg Config) {
    if cfg.Timeout == 0 {
        cfg.Timeout = 30 // προεπιλεγμένη τιμή
    }
    // ...
}

// Κλήση:
doSomething(Config{})
  1. Δημιουργία βοηθητικών συναρτήσεων-κατασκευαστών με διαφορετικά σύνολα παραμέτρων.

Έτσι, στη Go, οι προεπιλεγμένες τιμές υλοποιούνται μέσω ρητής λογικής μέσα στη συνάρτηση ή μέσω δομών, και όχι μέσω της σύνταξης της γλώσσας.