Est-il possible de charger un package spécifique pendant l'exécution? Je veux avoir une sorte de plugins où chacun a les mêmes fonctions que les autres mais avec un comportement différent, et selon le fichier de configuration, chargez l'un ou l'autre . Merci
Vous pouvez envisager d’exécuter les packages 'plugin' au moment de l’exécution, en écrivant un nouveau programme (dans un répertoire temporaire, par exemple) et en exécutant via exec.Command , un résultat similaire à exec.Command("go", "run", files…).Run()
Vous verrez un code similaire ici .
Non, Go ne prend pas en charge les bibliothèques à chargement dynamique.
Votre meilleur pari est de démarrer le plugin en tant que son propre exécutable et de communiquer avec lui via des sockets ou via stdin/stdout.
Mise à jour 2017
Cette réponse n'est plus vraie, Go supporte maintenant plugins .
Il existe un soutien pour cela dès le départ 1.8
Créez simplement un code qui lira la configuration, générera un fichier de base avec les paquets chargés dans l’ordre, puis exécutez-le, les langages de compilation ne fourniront pas de chargement dynamique, même Dart en souffre, il suffit de lire votre configuration. fichier puis créer un fichier temporaire avec les codes nécessaires pour charger et communiquer avec les sockets ou http