WikiDer > Go (Programmiersprache)
gehen | ||||
| Paradigma | Imperativ, verteilt | |||
| erschien | 2009 | |||
| Entworfen von | Robert Griesemer, Rob Pike, Ken Thompson | |||
| Aktuelle Version | 1.15.8[1] (4. Februar 2021) | |||
| Typensystem | stark | |||
| Implementierungen | google gc und gccgo | |||
| Beeinflusst von | u.a. C und Oberon | |||
| Betriebssystem | Linux, OS X und Microsoft Windows | |||
| Lizenz | BSD-Lizenz | |||
| Webseite | http://www.golang.org/ | |||
| ||||
gehen ist ein Programmiersprache die seit 2007 von . entwickelt wurde Google. Die Sprache wurde 2009 angekündigt und wird unter anderem von Google intern verwendet.[2] Die Entwickler der Sprache sind Robert Griesemer, Rob Pike, und Ken Thompson. Letzterer ist auch einer der Gründer von Unix.
Go-Code kann unter anderem kompiliert werden Linux, Mac OS, FreeBSD und Microsoft Windows und für i386-, amd64- und ARMProzessorarchitekturen.[3]Unterstützung für Android wurde in Version 1.4 hinzugefügt.
Die Sprache ist statisch typisiert jetzt sofort Syntax die sich auflösen C basiert. Go enthält Müllabfuhr, Typschutz, dynamische Schreibfunktionen, ein großes eingebautes Bibliothek und zusätzliche eingebaute Typen wie Arrays mit variabler Länge und Karten.
Hallo Welt
Hallo Welt im Gehen:
PaketMainimportieren"fmt"FunktionMain(){fmt.println("Hallo Welt")}Eigenschaften
Die Syntax von Go ähnelt der von C und ähnliche Programmiersprachen, obwohl es einige bemerkenswerte Unterschiede gibt. Beispielsweise:
- Bei der Deklaration von Variablen und Funktionsparametern wird es zu wordt Arthinter setzen Sie den Namen statt davor.
- Semikolons sind, genau wie zum Beispiel Javascript, nicht erforderlich am Ende einer Zeile.
- Öffnung-Hosenträger muss in derselben Zeile stehen wie die entsprechende Aussage. In obigem Hallo Welt-Programm kann die geschweifte Klammer verwenden
funcmain()Also nicht in die nächste Zeile schreiben.
Parallele Programmierung: Goroutinen und Kanäle
Go bietet die Möglichkeit für verteilte Programmierung, wo mehrere Prozesse gleichzeitig durchgeführt werden. Dies geschieht durch goroutinen (ein Wortspiel auf Koroutinen) und Kanäle.
Eine Goroutine ist eine Funktion, die gleichzeitig mit anderen Goroutinen ausgeführt wird. Goroutinen können über Kanäle Daten miteinander austauschen.
Im Beispiel unten laufen drei Prozesse gleichzeitig, die Informationen über einen Kanal austauschen.
PaketMainimportieren"fmt"importieren"Zeit"importieren"Mathematik/Kante"Funktionein(CHchanint,ichint){zum{CH<-ichein:=Kante.int()wennein%2==0{Zeit.schlafen(1)}}}FunktionMain(){CH:=machen(chanint)gehenein(CH,1)gehenein(CH,2)zumwahr{ein:=<-CHfmt.drucken(ein)}}In Zeile 18 wird ein neuer Kanal (CH) vor dem ganze Zahlen erstellt. Dann, in Zeile 19, Funktion ein gestartet. Das Stichwort gehen bewirkt, dass die Funktion parallel zum Hauptprogramm ausgeführt wird. Funktion a führt unendlich aus Schleife off, wobei jedes Mal die angegebene ganze Zahl ich (in diesem Fall 1) zum angegebenen Kanal (CH) wird geschrieben (Zeile 9). Dann wartet der Vorgang manchmal 1 Sekunde (abhängig von einer Zufallszahl).
Nach dem Start ein das Hauptprogramm läuft sofort weiter, anstatt zu warten ein fertig. In Zeile 20 eine weitere Version von ein gestartet, aber diese Version schreibt immer eine 2 in den Kanal. Es laufen nun zwei Coroutinen, während auch das Hauptprogramm (main) normal weiterläuft.
Das Hauptprogramm führt nun in den Zeilen 21-24 eine Endlosschleife aus, wobei jedes Mal eine ganze Zahl aus Kanal CH geholt (bei leerem Kanal pausiert das Hauptprogramm) und auf dem Bildschirm ausgedruckt.
Das Ergebnis ist, dass 3 unabhängige Prozesse gleichzeitig aktiv sind, die auf unbestimmte Zeit fortgesetzt werden: die 2 Prozesse, die funktionieren ein execute schreibt eine 1 oder eine 2 in den Kanal und der dritte Prozess ist das Hauptprogramm, das den Inhalt des Kanals ausgibt. Die Ausgabe könnte so aussehen:
- 12222212211112222112221112211 ....
Ohne parallele Ausführung würde das Programm nie über den ersten Funktionsaufruf hinauskommen ein und das Ergebnis wäre eine unendliche Reihe von Einsen.
Externer Link
Quellen, Anmerkungen und/oder Verweise
|
| Programmiersprachen |
|---|
ABAP ·ABC ·ActionScript ·ada ·algol ·APL ·Assemblersprachen ·AWK ·B ·BASIC ·BCPL ·C ·C ·C♯ ·sauber ·Schermaschine ·COBOL ·COMAL ·Curry ·d ·Eiffel ·Erlang ·F♯ ·her ·fortran ·gehen ·Haskell ·Symbol ·J ·Java ·Kotlin ·lispeln ·Logo ·lua ·m4 ·ML ·Modula-2 ·Oberon ·Objekt Pascal ·Ziel c ·Ocamli ·Unze ·Pascal ·perl ·PHP ·PL/I ·PL/SQL ·Prolog ·Prova ·Python ·Rexx ·Rollenspiel ·Rubin ·Frieden ·SAS ·Reichweite ·planen ·Selbst ·Simula ·Smalltalk ·Schnell ·TCL ·Typoskript ·vala ·Visual Basic |