So schreiben Sie Ihr erstes Programm in Go

Einführung

Das Programm „Hello, World!“ Ist eine klassische und altehrwürdige Tradition in der Computerprogrammierung. Es ist ein einfaches und vollständiges erstes Programm für Anfänger und eine gute Möglichkeit, um sicherzustellen, dass Ihre Umgebung ordnungsgemäß konfiguriert ist.

In diesem Tutorial erfahren Sie, wie Sie dieses Programm in Go erstellen. Um das Programm jedoch interessanter zu gestalten, müssen Sie das herkömmliche Programm "Hello, World!" So ändern, dass der Benutzer nach seinem Namen gefragt wird. Anschließend verwenden Sie den Namen in der Begrüßung. Wenn Sie mit dem Tutorial fertig sind, haben Sie ein Programm, das beim Ausführen so aussieht:

OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Go!

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, müssen Sie einlocal Go development environmentauf Ihrem Computer eingerichtet haben. Sie können dies einrichten, indem Sie einem dieser Tutorials folgen:

[[Schritt 1 - Schreiben der grundlegenden "Hallo Welt -" - Programm]] == Schritt 1 - Schreiben der grundlegenden "Hallo Welt!" Programm

Um das "Hallo, Welt!" Öffnen Sie einen Befehlszeilentexteditor wienano und erstellen Sie eine neue Datei:

nano hello.go

Sobald sich die Textdatei im Terminalfenster öffnet, geben Sie Ihr Programm ein:

hello.go

package main

import "fmt"

func main() {
  fmt.Println("Hello, World!")
}

Lassen Sie uns die verschiedenen Komponenten des Codes aufschlüsseln.

package ist ein Gokeyword, das definiert, zu welchem ​​Code-Bundle diese Datei gehört. Es kann nur ein Paket pro Ordner geben, und jede.go-Datei muss denselben Paketnamen oben in der Datei deklarieren. In diesem Beispiel gehört der Code zum Paketmain.

import ist ein Gokeyword, der dem Go-Compiler mitteilt, welche anderen Pakete Sie in dieser Datei verwenden möchten. Hier importieren Sie das Paketfmt, das mit der Standardbibliothek geliefert wird. Das Paketfmtbietet Formatierungs- und Druckfunktionen, die bei der Entwicklung hilfreich sein können.

fmt.Println ist ein Gofunction, der im Paketfmt enthalten ist und den Computer anweist, Text auf den Bildschirm zu drucken.

Sie folgen der Funktionfmt.Println durch eine Folge von Zeichen wie"Hello, World!" in Anführungszeichen. Alle Zeichen in Anführungszeichen werden alsstring bezeichnet. Die Funktionfmt.Println druckt diese Zeichenfolge auf dem Bildschirm, wenn das Programm ausgeführt wird.

Speichern und beenden Sienano, indem SieCTRL + X eingeben. Wenn Sie zum Speichern der Datei aufgefordert werden, drücken SieY.

Jetzt können Sie Ihr Programm ausprobieren.

[[Schritt-2 - Ausführen eines Go-Programms]] == Schritt 2 - Ausführen eines Go-Programms

Wenn Sie Ihr "Hello, World!" - Programm geschrieben haben, können Sie das Programm ausführen. Sie verwenden den Befehlgo, gefolgt vom Namen der gerade erstellten Datei.

go run hello.go

Das Programm wird diese Ausgabe ausführen und anzeigen:

OutputHello, World!

Lassen Sie uns untersuchen, was tatsächlich passiert ist.

Go-Programme müssen kompiliert werden, bevor sie ausgeführt werden können. Wenn Siego run mit dem Namen einer Datei aufrufen, in diesem Fallhello.go, führt der Befehlgocompile zur Anwendung und führt dann die resultierende Binärdatei aus. Bei Programmen, die in den Programmiersprachen voncompiledgeschrieben sind, verwendet ein Compiler den Quellcode eines Programms und generiert einen anderen Typ von Code niedrigerer Ebene (z. B. Maschinencode), um ein ausführbares Programm zu erstellen.

Go-Anwendungen erfordern einmain-Paket und genau dieonemain()-Funktion, die als Einstiegspunkt für die Anwendung dient. Die Funktionmainakzeptiert keine Argumente und gibt keine Werte zurück. Stattdessen wird dem Go-Compiler mitgeteilt, dass das Paket als ausführbares Paket kompiliert werden soll.

Nach dem Kompilieren wird der Code ausgeführt, indem die Funktionmain() in das Paketmain eingegeben wird. Es führt die Zeilefmt.Println("Hello, World!") durchcalling diefmt.Println Funktion aus. Der Zeichenfolgenwert vonHello, World! ist dannpassed für die Funktion. In diesem Beispiel wird die ZeichenfolgeHello, World! auch alsargument bezeichnet, da es sich um einen Wert handelt, der an eine Methode übergeben wird.

Die Anführungszeichen auf beiden Seiten vonHello, World! werden nicht auf dem Bildschirm gedruckt, da Sie damit Go mitteilen, wo Ihre Zeichenfolge beginnt und endet.

In diesem Schritt haben Sie mit Go ein funktionierendes "Hello, World!" - Programm erstellt. Im nächsten Schritt erfahren Sie, wie Sie das Programm interaktiver gestalten können.

[[Schritt 3 - Aufforderung zur Benutzereingabe]] == Schritt 3 - Aufforderung zur Benutzereingabe

Jedes Mal, wenn Sie Ihr Programm ausführen, wird dieselbe Ausgabe erzeugt. In diesem Schritt können Sie Ihrem Programm hinzufügen, um den Benutzer zur Eingabe seines Namens aufzufordern. Sie werden dann ihren Namen in der Ausgabe verwenden.

Anstatt Ihr vorhandenes Programm zu ändern, erstellen Sie mit dem Editor vonnanoein neues Programm namensgreeting.go:

nano greeting.go

Fügen Sie zunächst diesen Code hinzu, der den Benutzer auffordert, seinen Namen einzugeben:

greeting.go

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
}

Wieder verwenden Sie die Funktionfmt.Println, um Text auf den Bildschirm zu drucken.

Fügen Sie nun die hervorgehobene Zeile hinzu, um die Benutzereingaben zu speichern:

greeting.go

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
  var name string
}

Die Zeilevar name string erstellt eine neue Variable mitvarkeyword. Sie benennen die Variablename und sie ist vom Typstring.

Fügen Sie dann die hervorgehobene Zeile hinzu, um die Benutzereingaben zu erfassen:

greeting.go

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
  var name string
  fmt.Scanln(&name)
}

Die Methodefmt.Scanln weist den Computer an, auf Eingaben von der Tastatur zu warten, die mit einer neuen Zeile oder einem neuen Zeichen ( ) enden. Dadurch wird das Programm angehalten und der Benutzer kann den gewünschten Text eingeben. Das Programm wird fortgesetzt, wenn der Benutzer die TasteENTERauf seiner Tastatur drückt. Alle Tastenanschläge, einschließlich des TastenanschlagsENTER, werden dann erfasst und in eine Zeichenfolge konvertiert.

Sie möchten diese Zeichen in der Ausgabe Ihres Programms verwenden, also speichern Sie diese Zeichen umwriting in der Zeichenfolgevariable mit der Bezeichnungname. Go speichert diese Zeichenfolge im Speicher Ihres Computers, bis die Ausführung des Programms abgeschlossen ist.

Fügen Sie abschließend die folgende hervorgehobene Zeile in Ihr Programm ein, um die Ausgabe zu drucken:

greeting.go

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
  var name string
  fmt.Scanln(&name)
  fmt.Printf("Hi, %s! I'm Go!", name)
}

Dieses Mal verwenden Sie anstelle der Methodefmt.Printlnfmt.Printf. Die Funktionfmt.Printf nimmt eine Zeichenfolge und injiziert mit dem speziellen Druckverbs (%s) den Wertname in die Zeichenfolge. Sie tun dies, weil Gostring interpolation nicht unterstützt. Dadurch können Sie den einer Variablen zugewiesenen Wert in eine Zeichenfolge einfügen.

Speichern und beenden Sienano, indem SieCTRL + X drücken, und drücken SieY, wenn Sie aufgefordert werden, die Datei zu speichern.

Führen Sie nun das Programm aus. Sie werden aufgefordert, Ihren Namen einzugeben. Geben Sie ihn ein und drücken SieENTER. Die Ausgabe entspricht möglicherweise nicht genau Ihren Erwartungen:

OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Go!

Anstelle vonHi, Sammy! I'm Go! wird direkt nach dem Namen ein Zeilenumbruch angezeigt.

Das Programm hatall unserer Tastenanschläge erfasst, einschließlich der TasteENTER, die wir gedrückt haben, um das Programm anzuweisen, fortzufahren. Wenn Sie in einer Zeichenfolge die TasteENTERdrücken, wird ein Sonderzeichen erstellt, das eine neue Zeile erstellt. Die Ausgabe des Programms entspricht genau Ihren Anweisungen. Es zeigt den von Ihnen eingegebenen Text einschließlich der neuen Zeile an. Es ist nicht das, was Sie von der Ausgabe erwartet haben, aber Sie können es mit zusätzlichen Funktionen beheben.

Öffnen Sie die Dateigreeting.goin Ihrem Editor:

nano greeting.go

Suchen Sie diese Zeile in Ihrem Programm:

greeting.go

...
fmt.Scanln(&name)
...

Fügen Sie gleich danach die folgende Zeile hinzu:

greeting.go

name = strings.TrimSpace(name)

Dies verwendet die FunktionTrimSpaceaus dem Paket der Standardbibliothekstringsvon Go für die Zeichenfolge, die Sie mitfmt.Scanln erfasst haben. Die Funktionstrings.TrimSpace entfernt alle Leerzeichen, einschließlich neuer Zeilen, vom Anfang und Ende einer Zeichenfolge. In diesem Fall wird das Zeilenumbruchzeichen am Ende der Zeichenfolge entfernt, die beim Drücken vonENTER erstellt wurde.

Um das Paketstringszu verwenden, müssen Sie es oben im Programm importieren.

Suchen Sie diese Zeilen in Ihrem Programm:

greeting.go

import (
    "fmt"
)

Fügen Sie die folgende Zeile hinzu, um das Paketstringszu importieren:

greeting.go

import (
    "fmt"
  "strings"
)

Ihr Programm enthält nun Folgendes:

greeting.go

package main

import (
        "fmt"
        "strings"
)

func main() {
    fmt.Println("Please enter your name.")
    var name string
    fmt.Scanln(&name)
    fmt.Printf("Hi, %s! I'm Go!", name)
    name = strings.TrimSpace(name)
}

Speichern und beenden Sienano. Drücken SieCTRL + X und dannY, wenn Sie aufgefordert werden, die Datei zu speichern.

Führen Sie das Programm erneut aus:

go run greeting.go

Dieses Mal erhalten Sie nach Eingabe Ihres Namens und Drücken vonENTER die erwartete Ausgabe:

OutputPlease enter your name.
Sammy
Hi, Sammy! I'm Go!

Sie haben jetzt ein Go-Programm, das Eingaben von einem Benutzer entgegennimmt und wieder auf dem Bildschirm ausgibt.

Fazit

In diesem Lernprogramm haben Sie ein Programm "Hello, World!" Geschrieben, das Eingaben von einem Benutzer entgegennimmt, die Ergebnisse verarbeitet und die Ausgabe anzeigt. Versuchen Sie, Ihr Programm weiter zu erweitern, da Sie nun über ein Basisprogramm verfügen, mit dem Sie arbeiten können. Fragen Sie zum Beispiel nach der Lieblingsfarbe des Benutzers und lassen Sie das Programm sagen, dass seine Lieblingsfarbe Rot ist. Sie könnten sogar versuchen, mit dieser Technik ein einfaches Mad-Lib-Programm zu erstellen.