Tracks
/
Go
Go
/
Übungen
/
Gophers großartige Lasagne
Gophers großartige Lasagne

Gophers großartige Lasagne

Lernübung

Einführung

Go ist eine statisch typisierte, kompilierte Programmiersprache. In dieser Übung lernst du drei wichtige Sprachmerkmale kennen: Pakete, Funktionen und Variablen.

Pakete

Go-Anwendungen werden in Paketen organisiert. Ein Paket ist eine Sammlung von Quelldateien, die im selben Verzeichnis liegen. Alle Quelldateien in einem Verzeichnis müssen denselben Paketnamen haben. Wenn ein Paket importiert wird, können nur Entitäten (Funktionen, Typen, Variablen, Konstanten) verwendet bzw. darauf zugegriffen werden, deren Namen mit einem Großbuchstaben beginnen. Der empfohlene Stil für die Benennung in Go ist, dass Bezeichner in camelCase benannt werden, außer denen, die paketübergreifend zugänglich sein sollen, die PascalCase verwenden sollten.

package lasagna

Variablen

Go ist statisch typisiert, das heißt, alle Variablen müssen zur Kompilierzeit einen definierten Typ haben.

Variablen können definiert werden, indem du einen Typ explizit angibst:

var explicit int // Explicitly typed

Du kannst auch einen Initialisierungswert verwenden, und der Compiler weist der Variablen einen Typ zu, der zum Typ des Initialisierungswerts passt.

implicit := 10   // Implicitly typed as an int

Nach der Deklaration kannst du Variablen mit dem Operator = Werte zuweisen. Nach der Deklaration kann sich der Typ einer Variablen nie ändern.

count := 1 // Assign initial value
count = 2  // Update to new value

count = false // This throws a compiler error due to assigning a non `int` type

Konstanten

Konstanten enthalten genau wie Variablen einen Datenwert, aber ihr Wert kann sich während der Ausführung des Programms nicht ändern.

Konstanten werden mit dem Schlüsselwort const definiert und können Zahlen, Zeichen, Strings oder boolesche Werte sein:

const Age = 21 // Defines a numeric constant 'Age' with the value of 21

Funktionen

Go-Funktionen akzeptieren null oder mehr Parameter. Parameter müssen explizit typisiert sein, es gibt keine Typinferenz.

Werte werden mit dem Schlüsselwort return aus Funktionen zurückgegeben.

Eine Funktion wird aufgerufen, indem du den Funktionsnamen angibst und für jeden Parameter der Funktion ein Argument übergibst.

Beachte, dass Go zwei Arten von Kommentaren unterstützt. Einzeilige Kommentare werden mit // eingeleitet, mehrzeilige Kommentare zwischen /* und */ eingefügt.

package greeting

// Hello is a public function.
func Hello (name string) string {
    return hi(name)
}

// hi is a private function.
func hi (name string) string {
    return "hi " + name
}

Anleitung

In dieser Übung schreibst du etwas Code, der dir hilft, eine großartige Lasagne aus deinem Lieblingskochbuch zu kochen.

Du hast vier Aufgaben, die sich alle mit der Zeit befassen, die du für das Kochen der Lasagne brauchst.

1. Definiere die erwartete Backzeit in Minuten

Definiere die Konstante OvenTime mit der Anzahl an Minuten, die die Lasagne im Ofen sein sollte. Laut dem Kochbuch beträgt die erwartete Backzeit in Minuten 40:

OvenTime
// => 40

2. Berechne die verbleibende Backzeit in Minuten

Definiere die Funktion RemainingOvenTime(). Sie nimmt die tatsächlichen Minuten, die die Lasagne schon im Ofen war, als Parameter entgegen und gibt zurück, wie viele Minuten die Lasagne noch im Ofen bleiben muss. Das basiert auf der erwarteten Backzeit in Minuten aus der vorherigen Aufgabe.

func RemainingOvenTime(actual int) int {
    // TODO
}

RemainingOvenTime(30)
// => 10

3. Berechne die Vorbereitungszeit in Minuten

Definiere die Funktion PreparationTime. Sie nimmt die Anzahl der Schichten, die du auf die Lasagne gelegt hast, als Parameter entgegen und gibt zurück, wie viele Minuten du für die Vorbereitung der Lasagne gebraucht hast. Geh dabei davon aus, dass jede Schicht 2 Minuten Vorbereitung braucht.

func PreparationTime(numberOfLayers int) int {
    // TODO
}

PreparationTime(2)
// => 4

4. Berechne die bisherige Arbeitszeit in Minuten

Definiere die Funktion ElapsedTime. Sie nimmt zwei Parameter entgegen: Der erste Parameter ist die Anzahl der Schichten, die du auf die Lasagne gelegt hast, und der zweite Parameter ist die Anzahl der Minuten, die die Lasagne schon im Ofen war. Die Funktion soll zurückgeben, wie viele Minuten du insgesamt mit dem Kochen der Lasagne verbracht hast. Das ist die Summe aus der Vorbereitungszeit in Minuten und der Zeit in Minuten, die die Lasagne bis jetzt im Ofen verbracht hat.

func ElapsedTime(numberOfLayers, actualMinutesInOven int) int {
    // TODO
}

ElapsedTime(3, 20)
// => 26
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Go Exercism

Bereit, mit Gophers großartige Lasagne zu starten?

Melde dich bei Exercism an, um Go mit 35 Konzepte167 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.