Die Programmiersprache Gauntlet wurde vorgestellt, die die Möglichkeiten von Go erweitert.

Die erste Alpha-Version der Programmiersprache Gauntlet, eine Erweiterung von Go, ist jetzt verfügbar. Sie löst einige architektonische Probleme und fügt zusätzliche Funktionen hinzu. Programme in Gauntlet unterstützen alle Möglichkeiten von Go, werden in Go-Code übersetzt und integrieren sich nahtlos in das bestehende Go-Ökosystem, ohne dass Bindungswrappers erforderlich sind. Das von diesem Projekt entwickelte Toolkit ist in F# geschrieben und wird unter der GPLv3-Lizenz vertrieben. Ein Plugin für den VSCode-Editor wird für die Arbeit mit dem Code bereitgestellt.

Probleme, die Gauntlet löst:

  • Belästigende Fehlermeldungen aufgrund ungenutzter Variablen (Gauntlet fügt für alle ungenutzten Variablen Platzhalter wie „_ = a“ hinzu).
  • Aufgeblähter Code zur Fehlerbehandlung. In Gauntlet werden anstelle von Bedingungsblöcken wie „if err != nil“ einzeilige Ausdrücke „try-with“ verwendet.
  • Umständlicher Import- und Exportprozess (z. B. erfordert Go, dass exportierte Namen mit einem Großbuchstaben beginnen).
  • Fehlender ternärer Operator. In Gauntlet können Ausdrücke wie ‚let properWord = @String len(lines) > 1 ? „lines“ : „line“‘ verwendet werden.
  • Fehlende switch-case-Syntax.
  • Komplexere Schleifen „for“. In Gauntlet können Sie „for let _, c in „Hello“ {“ anstelle von „for _, c := range „Hello“ {“ schreiben.
  • Ungewöhnlicher Zuweisungsoperator („:=“ für die gleichzeitige Deklaration und Initialisierung von Variablen; „=“ für die Änderung des Wertes bereits deklarierter Variablen).
  • Unmöglichkeit der Kettenaufrufe von Funktionen (in Gauntlet wird ein Aufruf in der Form ‚let trimmedLines = fileContentStrVersion => strings.trimSpace(_) => strings.split(_, „\n“)‘ unterstützt.).

Erweiterte Funktionen von Gauntlet:

  • Die „when-is“-Syntax ähnelt switch.case, manipuliert jedoch Ausdrücke.
  • Unterstützung von Pipe-Kanälen, die es ermöglichen, Werte durch mehrere Ausdrücke oder Funktionen zu leiten, z. B. „10 => add(_, 10) => add(_, 30) => divide(_, 2)“.
  • Die Ausdrücke „try .. with“ und „force .. with“.
  • Die Ausdruck „wrapper“ zur Erstellung von Typaliasen (z. B. „wrapper Int Dollars“).

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster