Inhaltsverzeichnis
Frageninhalt
Lösung
Heim Backend-Entwicklung Golang Mehrere Funktionstypen im Mapping, Golang

Mehrere Funktionstypen im Mapping, Golang

Feb 12, 2024 am 08:39 AM
golang开发

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)
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!")
Nach dem Login kopieren

Ausgabe: Hallo Welt!

myMap["MyAdd"] = interface{}(MyAdd)
myMap["MyAdd"].(func(int,int))(1, 2)
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Entwickeln Sie leistungsstarke Desktop-Anwendungen mit Golang Entwickeln Sie leistungsstarke Desktop-Anwendungen mit Golang Mar 19, 2024 pm 05:45 PM

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

Sicherheitsherausforderungen bei der Golang-Entwicklung: Wie kann verhindert werden, dass es zur Virenentstehung ausgenutzt wird? Sicherheitsherausforderungen bei der Golang-Entwicklung: Wie kann verhindert werden, dass es zur Virenentstehung ausgenutzt wird? Mar 19, 2024 pm 12:39 PM

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

Schritte und Tipps zum Programmieren mit Golang auf dem Mac Schritte und Tipps zum Programmieren mit Golang auf dem Mac Mar 03, 2024 am 08:30 AM

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

Forschung zum Einfluss und zur Rolle von Golang auf die Entwicklung der Blockchain Forschung zum Einfluss und zur Rolle von Golang auf die Entwicklung der Blockchain Feb 26, 2024 pm 04:24 PM

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

Welche Programmiersprachen werden häufig von Golang-Entwicklern verwendet? Welche Programmiersprachen werden häufig von Golang-Entwicklern verwendet? Mar 18, 2024 pm 09:06 PM

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.

Das Go-Kit-Framework hilft, die Leistung der Golang-API zu verbessern Das Go-Kit-Framework hilft, die Leistung der Golang-API zu verbessern May 07, 2024 pm 03:24 PM

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.

Vermittlung praktischer Techniken zum Ersetzen von Leerzeichen in Golang Vermittlung praktischer Techniken zum Ersetzen von Leerzeichen in Golang Mar 13, 2024 am 09:15 AM

Titel: Austausch praktischer Techniken zum Ersetzen von Leerzeichen in Golang Mit der Popularität und Entwicklung des Internets sind Programmdesign und -entwicklung immer wichtiger geworden. Im Programmierprozess ist die Datenverarbeitung ein sehr kritischer Teil. Bei der Verarbeitung von Textdaten kommt es häufig vor, dass Leerzeichen ersetzt werden müssen. In diesem Artikel erfahren Sie, wie Sie die Technologie zum Ersetzen von Leerzeichen in Golang implementieren und stellen spezifische Codebeispiele bereit. Warum muss ich Leerzeichen ersetzen? Leerzeichen gehören zu den häufigsten Sonderzeichen in Textdaten. Manchmal müssen wir Leerzeichen durch andere Zeichen ersetzen oder Leerzeichen entfernen.

Ein tiefer Einblick in Golang-Fehler: Ursachenanalyse und Lösungsstrategien Ein tiefer Einblick in Golang-Fehler: Ursachenanalyse und Lösungsstrategien Mar 20, 2024 am 09:21 AM

Als schnelle und effiziente Programmiersprache wird die Golang-Sprache von immer mehr Entwicklern bevorzugt. Bei der täglichen Entwicklung werden wir jedoch zwangsläufig auf verschiedene Fehler stoßen. Fehlerursachen richtig zu analysieren und Lösungsstrategien zu finden, ist eine wichtige Fähigkeit, die jeder Golang-Entwickler verstehen und gründlich beherrschen muss. Fehler bei der Fehleranalyse bei der Typzusicherung. In Golang ist die Typzusicherung ein häufiger Vorgang. Wenn die Typen jedoch nicht übereinstimmen, kommt es manchmal zu Panik. Hier ist ein einfaches Beispiel: varxinter

See all articles