Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Computer Skills
  2. Go
Computers

Beginnen Sie das Entwickeln mit Go auf dem Mac

by
Difficulty:IntermediateLength:LongLanguages:

German (Deutsch) translation by Katharina Nevolina (you can also view the original English article)

Final product image
What You'll Be Creating

Webanwendungen sind heutzutage ein Teil des Lebens. Die Go-Sprache von Google ist eine nützliche Sprache, um webbasierte Anwendungen zu erstellen. Ich zeige Ihnen, wie Sie mit Go auf einem Mac arbeiten.

Einrichten der Go-Umgebung

Die einfachste Möglichkeit, die Go-Programmiersprache zu installieren, ist von Homebrew. Wenn Sie Homebrew noch nicht installiert haben, zeigt Ihnen das Tutorial Homebrew Demystified: Ultimate Package Manager von OS X, wie.

Geben Sie in einem Terminal Folgendes ein:

Finden go Install

Um den Speicherort des go-Installationsverzeichnisses zu ermitteln, geben Sie diesen Befehl in Ihr Terminalprogramm ein:

Sie sollten dieses Ergebnis erhalten:

Dies zeigt, dass die Hauptinstallation von Go /usr/local/Cellar/go/1.2.2 ist. Sie müssen die Umgebungsvariable GOROOT als libexec-Verzeichnis dieses Verzeichnisses einrichten.

Legen Sie im Heimatverzeichnis das Verzeichnis go an. Die Sprache go speichert alle heruntergeladenen Pakete dort. Fügen Sie Ihrer .bashrc-Datei und/oder .zshrc-Datei diese Zeile hinzu:

Wenn Sie fisch verwenden, fügen Sie dies Ihrer config.fish-Datei hinzu:

Um go zu testen, geben Sie Folgendes in ein Terminal ein:

Es sollte die installierte Version von go ausdrucken. Auf meinem System wird jetzt die go version go1.2.2 darwin/amd64 angezeigt.

Um nach neueren Versionen zu suchen, lassen Sie HomeBrew das herausfinden. Geben Sie in der Befehlszeile Folgendes ein:

Der Update-Befehl erhält eine Liste der aktualisierten Programme. Der Upgrade-Befehl führt das eigentliche Upgrade durch. Auf diese Weise müssen Sie niemals die verschiedenen Websites durchsuchen, um Updates zu finden.

Einrichten des Editors

Nun, da Go im System ist, müssen Sie den Editor einrichten. Ich verwende häufig Sublime Text 3, Vim und Emacs. Daher muss ich meine Redakteure mit Go auf den neuesten Stand bringen.

Bei Sublime Text ist das einfach. Installieren Sie Package Manager für Sublime Text. Das ermöglicht eine einfache Paketinstallation. Das Paket, das Sie installieren möchten, ist goSublime. goSublime bietet Ihnen die Go-Sprache-Syntax und ein Go-Build-System.

Um die Go-Syntax-Hervorhebung für Emacs zu installieren, installieren Sie die in $GOROOT/misc/emacs enthaltenen eLisp-Routinen in Ihrem emacs elisp-Ordner. Damit Emacs die neuen Dateien lädt, fügen Sie diese Zeile zur .emacs-Datei im Basisordner hinzu:

Die Unterstützung für Vim erfordert mehr Arbeit. Führen Sie in einem Terminal die folgenden bash-Befehlszeilen aus:

Die letzte Zeile wird nur benötigt, wenn Sie in .vimrc noch keine Syntax on haben.

Bibliotheken und deren Verwendung

Traditionell sind Bibliotheken die Grundlagen für die Modularisierung von Code zur Wiederverwendung. In go, Bibliotheken sind unterwegs Pakete. Die Go-Sprache wird mit vielen integrierten Paketen geliefert. Sie können sie auf der Paketseite scannen. Es gibt auch viele Pakete und Projekte von Drittanbietern.

Für den Title Case Server verwende ich das Fremdanbieterpaket web.go. Es ist ein einfaches Webserver-Framework, das die Erstellung webbasierter Anwendungen in Go vereinfacht. Um dieses Paket in Ihr System zu laden, geben Sie Folgendes ein:

Der install-Befehl nimmt ein Argument an, das eine Webadresse ohne http:// ist, damit ein Paket heruntergeladen werden kann. Es befindet sich in dem zuvor erstellten Verzeichnis $GOPATH.

Das Projekt: Titel-Case-Server

Der Titelfall ist eine der wählerischsten Sachen. Manche Leute mögen bestimmte Wörter immer in Kleinbuchstaben. Andere meinen, die Wörter sollten alle Titel sein. Um das richtig zu machen (was die meisten Paketroutinen nicht tun), müssen Sie jedes Wort mit zwei Wörterbüchern vergleichen, um alles richtig zu machen. Es ist ein großartiges Einsteigerprojekt in einer neuen Programmiersprache.

Das Symbol // kennzeichnet einen Kommentar. Der Compiler ignoriert danach alles in der Zeile. Ich möchte alles kommentieren. Wenn Sie den Code Jahre später lesen, können Sie sich anhand der Kommentare daran erinnern, wie das Programm funktioniert.

Die Zeile hinter den Kommentaren ist die Paketdeklaration. Jede von Go verwendete Datei muss Teil eines Pakets sein. Jedes Programm hat nur ein main-Paket, das über die Funktion main() verfügen muss. Dadurch wird dem Compiler mitgeteilt, wo das Programm ausgeführt werden soll.

Um Pakete nutzen zu können, müssen Sie diese importieren. Alle verwendeten Pakete müssen in dieser Anweisung enthalten sein. Ich füge die zwei Basispakete von os für die Betriebssystemfunktionen und Strings zum Bearbeiten von Strings hinzu. Die Datei github.com/hoisie/web lädt das web.go-Paket zum Erstellen des Webservers.

Diese Funktion erstellt die Startseite. Das gibt der Server einem Webbrowser, der die Startseite der Website anfordert. Der Befehl func ist eine Funktionsdeklaration. Die homePage ist der Name der Funktion. Das () teilt dem Compiler mit, dass diese Funktion keine Eingaben benötigt. Der string hinter der Klammer teilt dem Compiler mit, dass die Funktion einen String zurückgibt.

Alles in {} ist der Code für die Funktion. Diese Funktion ist einfach: Bringen Sie die zitierte Zeichenfolge an den Aufrufer der Funktion zurück. In go können Sie Zeichenfolgen mit "", ’’ und `` zitieren. Ich habe den letzten hier verwendet, um eine mehrzeilige Zeichenfolge zu haben, die überhaupt nicht verarbeitet wird. Sie nennen das eine wörtliche Zeichenfolge.

Mit der wörtlichen Zitatmethode kann ich die Webseite wie gewohnt gestalten. Nichts innerhalb der Häkchen wird vom Compiler verarbeitet. Es wird direkt in das Programm kopiert und das Programm gibt es auf Anforderung an den Webbrowser zurück.

Mit diesem Code wird eine an den Webserver übergebene Zeichenfolge in das entsprechende Titelfeld übersetzt.

Die Zeichenfolge ctx *web.Context, val string teilt dem Compiler mit, dass diese Funktion zwei Variablen empfängt. Eines ist ein Zeiger auf die im web.go-Paket definierte web.Context-Datenstruktur. Der andere ist eine Zeichenfolge. Sie deklarieren eine Variableneingabe anhand eines Namens und des Variablentyps.

Das Symbol * kennzeichnet einen Zeiger. Ein Zeiger ist eine Adresse des Speicherorts für die Datenstruktur. Go folgt C-Datenzeigerformaten.

Die erste Anweisung ruft den Parameter namens text ab, den der Browser an den Server übergibt, und teilt ihn durch Leerzeichen auf. Strings.Split ruft die Split-Funktion innerhalb des strings-Pakets auf. Sie können sich Pakete vorstellen, die Objekten in C++ ähneln. Sie rufen sie mit einem an . zwischen dem Paketnamen und dem Funktionsnamen.

In jedem Paket ist jede Funktion, die mit einem Großbuchstaben beginnt, von außerhalb des Pakets zugänglich. Jede Funktion, die mit einem Kleinbuchstaben beginnt, ist nur vom Paket aus zugänglich.

Wenn die Funktion strings.Split eine Zeichenfolge durch das Trennzeichen aufteilt, wird ein Array von Zeichenfolgen zurückgegeben. Die Ausgabe wird dann den Variablen-Wörtern zugewiesen. Um eine neue Variable zu erstellen, müssen Sie sie bei der ersten Verwendung mit := zuweisen. Wenn Sie dieselbe Variable in ein anderes String-Array ändern möchten, verwenden Sie den Operator =.

Erstellen Sie anschließend zwei Arrays für die verschiedenen Wortlisten. lower ist für alle Kleinbuchstaben und upper für alle Großbuchstaben. Das […] teilt dem Compiler mit, die Anzahl der Zuweisungen aus den Daten zu erhalten. Auf diese Weise können Sie Wörter zu der Liste hinzufügen, ohne sich Gedanken darüber machen zu müssen, ob die Anzahl erhöht wird. Der String teilt dem Compiler mit, dass jeder Eintrag im Array ein String ist.

Ich verwende for..range-Schleifen, um die Arrays zu sequenzieren. Die erste übergeht jedes in der Eingabe eingegebene Wort, während zwei andere Schleifen jedes Wörterverzeichnis für jedes Wort durchlaufen. Zuerst wird das Wort in Kleinbuchstaben umgewandelt und mit jedem Wort im unteren Wörterbuch verglichen. Wenn es eine Übereinstimmung gibt, zwingt das Wort alle Kleinbuchstaben, indem die Wortposition der Zeichenfolge im Wörterbuch zugewiesen wird. Dann macht es dasselbe mit dem oberen Wörterbuch.

Wenn sich das Wort nicht in einem der Wörterbücher befand, führt es strings aus. Title-Funktion für das Wort. Das zwingt den ersten Buchstaben in Großbuchstaben und den Rest in Kleinbuchstaben.

Schließlich machte das erste Wort den Titelfall, egal was. Die Funktion strings.Join setzt das String-Array aus einem Leerzeichen zusammen. Die Ergebnisse werden an den Aufrufer der Funktion zurückgegeben.

Die Funktion killServer führt genau das aus, was der Name impliziert: Der Webserver wird beendet. Es ruft einen Aufruf der Funktion os.Exit() im Paket os auf.

Die main-Funktion verwendet web.Get, um die Get-Protokollrouten für die Homepage, die Kill-Seite und die Konvertierungsroutine für Titelkoffer festzulegen. Das web ist das Paket web.go, das wir zuvor heruntergeladen haben. Das Get definiert eine HTML-Get-Anfrage. Es gibt auch die Operatoren Put, Post und Delete, die Sie definieren können.

Die web.Run-Anweisung startet den Webserver an der angegebenen Adresse und dem angegebenen Port. Das web.go-Paket übernimmt von dort die Funktion und ruft Ihre Routinen auf, wenn die definierten Adressen angefordert werden.

Kompilieren

Nun, da das Programm fertig ist, müssen Sie es kompilieren. Um ein Go-Programm zu kompilieren, weisen Sie es an, die Datei mit der Hauptfunktion zu erstellen. Um dieses Programm zu kompilieren, geben Sie Folgendes ein:

Wenn der Vorgang abgeschlossen ist, befindet sich goTitleServer im Verzeichnis. Das ist das volle Programm. Sie können es starten mit:

Öffnen Sie dann einen Webbrowser unter http://127.0.0.1:9910. Sie sollten das sehen:

goTitleServer läuft

Geben Sie Ihre Zeichenfolge in das Textfeld Zu korrigierender Text: ein und drücken Sie Konvertieren. Die konvertierte Zeichenfolge wird im Textfeld Ergebnisse: angezeigt.

Titelfall-Server-Arbeitslauf

Ich habe dieses Programm natürlich in einen Alfred-Arbeitslauf eingefügt. Es ist Teil des Downloads zusammen mit der Datei goTitleServer.go. Dies zeigt ein Beispiel für die Verwendung des Servers ohne Webbrowser. Es verwendet den folgenden Bash-Code, um den Server abzufragen:

In der ersten Zeile werden alle Leerzeichen in der Abfragezeichenfolge in + geändert. Der Befehl curl ist ein Standard-Unix-Befehl zum Abrufen von Informationen von einem Webserver. Die Befehlszeile verwendet den curl-Befehl, den eine URL-Anforderung wie die Webseite erstellt, um sie zu senden. Was wird in den Ergebnissen beim Konvertieren der Zeichenfolge in den Titelkoffer zurückgegeben?

Die Alfred-Eingabeaufforderungen für diesen Arbeitslauf sind:

tis: launch - Dieser Befehl startet den Server. Sie müssen den Server starten, bevor Sie konvertieren können.

tcs: convert - Dieser Befehl benötigt einen String, der konvertiert werden soll. Der Arbeitslauf zeigt das Ergebnis in einer Benachrichtigung an und kopiert es in die Zwischenablage.

tcs: kill - Dieser Befehl beendet den Webserver.

Es gibt auch einen Hotkey, den Sie zuweisen müssen, um die aktuelle Auswahl zu übernehmen und über den Title-Case-Server auszuführen und sie wieder einzufügen.

Schlussfolgerung

Nachdem Sie das System für das Schreiben und Kompilieren von Webanwendungen mit Go konfiguriert haben, müssen Sie einige Anwendungen schreiben! Nehmen Sie diese Codebasis und erweitern Sie sie um weitere Textverarbeitungsfunktionen, um einen hervorragenden Textverarbeitungsserver zu erstellen.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.