Plusieurs types de fonctions dans la cartographie, Golang
Map est une structure de données puissante dans Golang qui nous permet d'associer une valeur à une autre valeur. Dans Golang, nous pouvons utiliser des mappages pour implémenter différents types de fonctions. L'éditeur PHP Youzi présentera différents types de fonctions de mappage dans cet article, y compris les fonctions ordinaires, les fonctions et méthodes anonymes. De plus, nous explorerons comment utiliser les fonctions comme valeurs dans les mappages et démontrerons leur puissance et leur flexibilité. Que vous soyez un développeur Golang débutant ou expérimenté, cet article vous fournira des connaissances utiles et des exemples pour vous aider à mieux comprendre et appliquer les types de fonctions dans les mappages. Commençons à explorer !
Contenu de la question
Je souhaite connecter l'entrée utilisateur à une fonction. L'entrée utilisateur est une chaîne. Par exemple,
"func_name=MyPrintf&s1=你好,世界!"
ou
"func_name=MyAdd&i1=1&i2=2"
Le code de chaque fonction est,
func MyPrintf(s1 string) { fmt.Println(s1) } func MyAdd(i1, i2 int) { fmt.Println(i1, i2) }
Je voudrais une carte comme celle ci-dessous,
type Myfunc func(string) | func(int, int) // <- Of course, it's wrong code, just I hope like this. myMap := make(map[string]Myfunc) myMap["MyPrintf"] = MyPrintf myMap["MyAdd"] = MyAdd
myMap peut appeler des fonctions via la chaîne func_name saisie par l'utilisateur.
myMap[func_name](s1)
Résultat : Bonjour tout le monde !
myMap[func_name](i1, i2)
Sortie : 3
Est-ce possible ? Peut-être que je pense qu'utiliser "eval" est possible, mais j'ai entendu dire que l'utilisation de "eval" était mauvaise. J'ai donc pensé à utiliser des pointeurs de fonction, mais il n'y a pas de pointeurs de fonction dans Golang.
J'ai essayé un peu de programmation générale Golang,
type Myfunc interface { func(string) | func(int, int) } myMap := make(map[string]Myfunc)
Sortie : une erreur s'est produite : impossible d'utiliser le type Myfunc en dehors des contraintes de type : l'interface contient des contraintes de type
Réessayez,
myMap := make(map[string]interface{}) myMap["MyPrintf"] = interface{}(MyPrintf) myMap["MyPrintf"].(func(string))("Hello, world!")
Sortie : Bonjour tout le monde !
myMap["MyAdd"] = interface{}(MyAdd) myMap["MyAdd"].(func(int,int))(1, 2)
Sortie : 3
Cela fonctionne, mais il faut spécifier le bon type de fonction, ce qui n'est pas très confortable. Je pense que cette méthode ne convient pas à mon scénario. S'il vous plaît, donnez-moi de l'aide. Je suis désolé pour ma mauvaise écriture en anglais.
Solution
Vous pouvez essayer ceci :
Je dois dire que ce n'est pas une bonne pratique car les erreurs de panique dues à des types incorrects ne sont pas vérifiées. Je vais envisager une autre approche.
package main import "fmt" type GeneralFunc func(args ...interface{}) func main() { // Create a map of functions with the type GeneralFunc functionsMap := map[string]GeneralFunc{ "MyPrintf": func(args ...interface{}) { fmt.Println(args[0].(string)) }, "MyAdd": func(args ...interface{}) { fmt.Println(args[0].(int), args[1].(int)) }, } // Use the functions from the map functionsMap["MyPrintf"]("Hello World") functionsMap["MyAdd"](2, 3) }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utilisez Golang pour développer des applications de bureau puissantes. Avec le développement continu d'Internet, les utilisateurs sont devenus indissociables de différents types d'applications de bureau. Pour les développeurs, il est crucial d’utiliser des langages de programmation efficaces pour développer des applications bureautiques puissantes. Cet article explique comment utiliser Golang (langage Go) pour développer des applications de bureau puissantes et fournit des exemples de code spécifiques. Golang est un langage de programmation open source développé par Google. Il présente les caractéristiques de simplicité, d'efficacité, de forte concurrence, etc., et convient parfaitement.

Défis de sécurité dans le développement de Golang : Comment éviter d'être exploité pour la création de virus ? Avec la large application de Golang dans le domaine de la programmation, de plus en plus de développeurs choisissent d'utiliser Golang pour développer différents types d'applications. Cependant, comme pour d’autres langages de programmation, le développement de Golang présente des problèmes de sécurité. En particulier, la puissance et la flexibilité de Golang en font également un outil potentiel de création de virus. Cet article abordera les problèmes de sécurité dans le développement de Golang et fournira quelques méthodes pour éviter G.

Titre : Étapes et techniques d'utilisation de la programmation Golang sur Mac Dans le domaine actuel du développement logiciel, Golang (également connu sous le nom de Go), en tant que langage de programmation efficace, concis et hautement simultané, a attiré l'attention de plus en plus de développeurs. . Lors de la programmation de Golang sur la plate-forme Mac, vous pouvez utiliser certains outils et techniques pour améliorer l'efficacité du développement. Cet article présentera les étapes et les techniques d'utilisation de la programmation Golang sur Mac et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et appliquer. Étape 1 : Installer Gol

Golang (langage Go en abrégé) en tant que langage de programmation a progressivement émergé dans le domaine de la blockchain ces dernières années. Ses capacités de traitement simultané efficaces et ses fonctionnalités de syntaxe concises en font un choix privilégié dans le développement de la blockchain. Cet article explorera comment Golang aide au développement de la blockchain et démontrera sa supériorité dans les applications blockchain à travers des exemples de code spécifiques. 1. Avantages de Golang dans le domaine de la blockchain : Capacités de traitement simultanées efficaces : les nœuds du système blockchain doivent traiter une grande quantité de transactions et de données en même temps, et Gola

Golang est un langage de programmation open source développé par Google et est largement utilisé dans le développement de services back-end, le cloud computing, la programmation réseau et d'autres domaines. En tant que langage typé statiquement, Golang dispose d'un modèle de concurrence efficace et d'une puissante bibliothèque standard, il est donc privilégié par les développeurs. Cependant, dans le développement réel, les développeurs Golang doivent généralement combiner d'autres langages de programmation pour le développement de projets afin de répondre aux besoins de différents scénarios. PythonPython est un langage de programmation orienté objet concis, clair et facile à apprendre.

Gokit est un framework de microservices Golang qui améliore les performances des API grâce à des fonctionnalités optimisées, évolutives, maintenables et conviviales pour les tests. Il fournit une gamme d'outils et de modèles qui permettent aux utilisateurs de créer rapidement des API performantes et maintenables. En production réelle, il est largement utilisé dans la construction d’API de grandes plateformes telles que Netflix, Spotify et Uber, traitant des requêtes massives.

Avantages et inconvénients de l'utilisation de Golang pour développer des jeux mobiles Avec la popularité des appareils mobiles et l'amélioration continue de leurs performances, le marché des jeux mobiles devient de plus en plus populaire, attirant de plus en plus de développeurs à le rejoindre. Lors du choix d'un langage de développement, Golang, en tant que langage rapide, efficace et facile à apprendre, attire l'attention de nombreux développeurs. Cet article discutera des avantages et des inconvénients de l'utilisation de Golang pour développer des jeux mobiles et l'illustrera à travers des exemples de code spécifiques. Avantages : Forte multiplateforme : Golang peut être compilé en binaires pour différentes plates-formes

Golang (également connu sous le nom de langage Go) est un langage de programmation open source développé par Google. Il est de plus en plus populaire parmi les développeurs grâce à sa simplicité, son efficacité et ses fonctionnalités puissantes. Lors de la mise en œuvre d'applications de bureau multiplateformes, Golang fournit également des outils et bibliothèques puissants pour rendre le développement plus facile et plus efficace. Cet article explique comment utiliser Golang pour implémenter des applications de bureau multiplateformes et fournit des exemples de code spécifiques à titre de référence. 1. Utilisez la bibliothèque fyne pour créer des applications GUI multiplateformes dans Golang, une
