Mehrere Funktionstypen im Mapping, Golang
Map ist eine leistungsstarke Datenstruktur in Golang, die es uns ermöglicht, einen Wert einem anderen Wert zuzuordnen. In Golang können wir Zuordnungen verwenden, um verschiedene Arten von Funktionen zu implementieren. Der PHP-Editor Youzi stellt in diesem Artikel verschiedene Funktionstypen im Mapping vor, darunter gewöhnliche Funktionen, anonyme Funktionen und Methoden. Darüber hinaus untersuchen wir, wie Funktionen als Werte in Zuordnungen verwendet werden, und demonstrieren ihre Leistungsfähigkeit und Flexibilität. Unabhängig davon, ob Sie Anfänger oder erfahrener Golang-Entwickler sind, bietet Ihnen dieser Artikel nützliches Wissen und Beispiele, die Ihnen helfen, Funktionstypen in Zuordnungen besser zu verstehen und anzuwenden. Beginnen wir mit der Erkundung!
Frageninhalt
Ich möchte Benutzereingaben mit einer Funktion verbinden. Die Benutzereingabe ist eine Zeichenfolge. Zum Beispiel,
"func_name=MyPrintf&s1=你好,世界!"
oder
"func_name=MyAdd&i1=1&i2=2"
Der Code jeder Funktion lautet:
func MyPrintf(s1 string) { fmt.Println(s1) } func MyAdd(i1, i2 int) { fmt.Println(i1, i2) }
Ich hätte gerne eine Karte wie die untenstehende,
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 kann Funktionen über die vom Benutzer eingegebene Zeichenfolge func_name aufrufen.
myMap[func_name](s1)
Ausgabe: Hallo Welt!
myMap[func_name](i1, i2)
Ausgabe: 3
Ist das möglich? Vielleicht denke ich, dass die Verwendung von „eval“ möglich ist, aber ich habe gehört, dass die Verwendung von „eval“ schlecht ist. Also dachte ich darüber nach, Funktionszeiger zu verwenden, aber in Golang gibt es keine Funktionszeiger.
Ich habe einige allgemeine Golang-Programmierung ausprobiert,
type Myfunc interface { func(string) | func(int, int) } myMap := make(map[string]Myfunc)
Ausgabe: Fehler aufgetreten: Typ Myfunc kann nicht außerhalb von Typeinschränkungen verwendet werden: Schnittstelle enthält Typeinschränkungen
Versuchen Sie es noch einmal,
myMap := make(map[string]interface{}) myMap["MyPrintf"] = interface{}(MyPrintf) myMap["MyPrintf"].(func(string))("Hello, world!")
Ausgabe: Hallo Welt!
myMap["MyAdd"] = interface{}(MyAdd) myMap["MyAdd"].(func(int,int))(1, 2)
Ausgabe: 3
Es funktioniert, aber Sie müssen den richtigen Funktionstyp angeben, was nicht sehr komfortabel ist. Ich denke, dieser Weg ist für mein Szenario nicht geeignet. Bitte gebt mir Hilfe. Es tut mir leid für meine schlechte englische Schreibweise.
Lösung
Sie können Folgendes versuchen:
Ich muss sagen, dass dies keine gute Vorgehensweise ist, da Panikfehler aufgrund falscher Typen nicht überprüft werden. Ich werde einen anderen Ansatz in Betracht ziehen.
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) }
Das obige ist der detaillierte Inhalt vonMehrere Funktionstypen im Mapping, Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Sicherheitsherausforderungen bei der Golang-Entwicklung: Wie kann verhindert werden, dass es zur Virenentstehung ausgenutzt wird? Aufgrund der breiten Anwendung von Golang im Bereich der Programmierung entscheiden sich immer mehr Entwickler für die Verwendung von Golang zur Entwicklung verschiedener Arten von Anwendungen. Allerdings gibt es wie bei anderen Programmiersprachen auch bei der Golang-Entwicklung Sicherheitsherausforderungen. Insbesondere seine Leistungsfähigkeit und Flexibilität machen Golang auch zu einem potenziellen Werkzeug zur Virenerstellung. Dieser Artikel befasst sich mit Sicherheitsproblemen bei der Golang-Entwicklung und bietet einige Methoden zur Vermeidung von G

Verwenden Sie Golang, um leistungsstarke Desktop-Anwendungen zu entwickeln. Mit der kontinuierlichen Entwicklung des Internets sind Menschen untrennbar mit verschiedenen Arten von Desktop-Anwendungen verbunden. Für Entwickler ist es von entscheidender Bedeutung, effiziente Programmiersprachen zu verwenden, um leistungsstarke Desktop-Anwendungen zu entwickeln. In diesem Artikel wird die Verwendung von Golang (Go-Sprache) zur Entwicklung leistungsstarker Desktop-Anwendungen vorgestellt und einige spezifische Codebeispiele bereitgestellt. Golang ist eine von Google entwickelte Open-Source-Programmiersprache. Sie zeichnet sich durch Einfachheit, Effizienz, starke Parallelität usw. aus und eignet sich sehr gut für

Titel: Schritte und Techniken zur Verwendung der Golang-Programmierung auf dem Mac Im aktuellen Bereich der Softwareentwicklung hat Golang (auch bekannt als Go) als effiziente, prägnante und hochgradig parallele Programmiersprache die Aufmerksamkeit immer mehr Entwickler auf sich gezogen . Beim Programmieren von Golang auf der Mac-Plattform können Sie einige Tools und Techniken verwenden, um die Entwicklungseffizienz zu verbessern. In diesem Artikel werden die Schritte und Techniken der Verwendung der Golang-Programmierung auf dem Mac vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern das Verständnis und die Anwendung zu erleichtern. Schritt 1: Gol installieren

Golang ist eine von Google entwickelte Open-Source-Programmiersprache, die häufig in der Back-End-Dienstentwicklung, Cloud Computing, Netzwerkprogrammierung und anderen Bereichen eingesetzt wird. Als statisch typisierte Sprache verfügt Golang über ein effizientes Parallelitätsmodell und eine leistungsstarke Standardbibliothek und wird daher von Entwicklern bevorzugt. In der tatsächlichen Entwicklung müssen Golang-Entwickler jedoch normalerweise andere Programmiersprachen für die Projektentwicklung kombinieren, um den Anforderungen verschiedener Szenarien gerecht zu werden. PythonPython ist eine objektorientierte Programmiersprache, die prägnant, klar und leicht zu erlernen ist.

Gokit ist ein Golang-Microservice-Framework, das die API-Leistung durch optimierte, skalierbare, wartbare und testfreundliche Funktionen verbessert. Es bietet eine Reihe von Tools und Mustern, die es Benutzern ermöglichen, schnell leistungsstarke und wartbare APIs zu erstellen. In der tatsächlichen Produktion wird es häufig beim API-Aufbau großer Plattformen wie Netflix, Spotify und Uber eingesetzt und verarbeitet massive Anfragen.

Golang (kurz Go-Sprache) hat sich in den letzten Jahren im Blockchain-Bereich nach und nach durchgesetzt. Seine effizienten Fähigkeiten zur gleichzeitigen Verarbeitung und seine prägnanten Syntaxfunktionen machen es zu einer bevorzugten Wahl in der Blockchain-Entwicklung. In diesem Artikel wird untersucht, wie Golang die Entwicklung der Blockchain unterstützt und seine Überlegenheit in Blockchain-Anwendungen anhand spezifischer Codebeispiele demonstriert. 1. Vorteile von Golang im Blockchain-Bereich: Effiziente gleichzeitige Verarbeitungsfunktionen: Knoten im Blockchain-System müssen eine große Menge an Transaktionen und Daten gleichzeitig verarbeiten, und Gola

Vor- und Nachteile der Verwendung von Golang zur Entwicklung mobiler Spiele Mit der Beliebtheit mobiler Geräte und der kontinuierlichen Verbesserung ihrer Leistung erfreut sich der Markt mobiler Spiele immer größerer Beliebtheit und lockt immer mehr Entwickler an. Bei der Auswahl einer Entwicklungssprache zieht Golang als schnelle, effiziente und leicht zu erlernende Sprache die Aufmerksamkeit vieler Entwickler auf sich. In diesem Artikel werden die Vor- und Nachteile der Verwendung von Golang zur Entwicklung mobiler Spiele erläutert und anhand spezifischer Codebeispiele veranschaulicht. Vorteile: Stark plattformübergreifend: Golang kann in Binärdateien für verschiedene Plattformen kompiliert werden

Titel: Machbarkeitsanalyse der Verwendung von Golang zur Entwicklung von U3D-Projekten Mit der kontinuierlichen Entwicklung der Spieleentwicklungsbranche bietet Unity3D (kurz U3D) als weit verbreitete Spiele-Engine Entwicklern leistungsstarke Tools und Unterstützung. In tatsächlichen Anwendungen sind Entwickler auch daran interessiert, andere Programmiersprachen zur Entwicklung von U3D-Projekten zu verwenden. In diesem Artikel wird die Machbarkeit der Verwendung von Golang zur Entwicklung von U3D-Projekten analysiert und einige spezifische Codebeispiele bereitgestellt. 1. Kombination von Golang und U3D Go
