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 Paketfmt
bietet 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 Befehlgo
compile 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 Funktionmain
akzeptiert 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 vonnano
ein 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 mitvar
keyword. 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 TasteENTER
auf 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.Println
fmt.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 TasteENTER
drü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.go
in 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 FunktionTrimSpace
aus dem Paket der Standardbibliothekstrings
von 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 Paketstrings
zu 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 Paketstrings
zu 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.