Das ist vielleicht keine so gute Frage, da ich keine kompilierte Sprache kenne, die diese Funktion unterstützt, aber da Go mich ständig überrascht, werde ich es trotzdem fragen:Unterstützt Go Operator-Typvariablen?
Für meine eigene Praxis Ich schreibe ein kleines Taschenrechnerprogramm in Go. Ich frage mich, ob es einen Weg gibt, kann ich eine Variable vom Typ „Operator“, so dass ich könnte zum Beispiel erklärt und zuordnen, schreiben:
var o Operator
o = +
var o1 Operator
o1 =/
und schreibe Funktion wie diese
func DoOperation(a,b int,o Operator) int{
return a o b
}
(Nein, ich frage nicht nach Überlastung des Bedieners.)
Offhand, ich kenne keine kompilierte Sprache, die so etwas unterstützt (ich bin kein Experte in diesem). Ich habe mir die Dokumente unter den Operatoren angeschaut und nichts gefunden. Kann mich das nochmal überraschen?
Edit: Die akzeptierte Antwort heißt es, dass Haskell dies unterstützt,
Jede dieser besonderen Grund wurde downvoted? Da Haskell dies unterstützt, ist es laut @ tomwildes Antwort keine dumme Frage und ich habe mir die Dokumente unter Operatoren angeschaut und nichts gefunden, aber Go scheint seinen Anteil an "Ostereiern" zu haben – Vector
Io kann sowas machen. – dethtron5000
@ dethtron5000 - interessant. Ich habe noch nie von 'Io' gehört, nur nachgeschaut - keine Mainstream-Sprache, denke ich ... :) Ich sehe, dass es in einer virtuellen Maschine läuft. Kompiliert es zu etwas wie Java Bytecode oder MSIL? – Vector