In dieser Übung lernst du die grundlegenden Bausteine von Ruby kennen. Sie deckt eine Menge Stoff ab, aber keine Sorge, wenn es dir zu viel erscheint: Wir gehen auf alles noch viel ausführlicher ein, wenn wir den Track weiter durchlaufen.
Eines der wichtigsten Dinge, die du über Ruby verstehen solltest, ist, dass es eine objektorientierte Sprache ist und dass in Ruby alles ein Objekt ist. Zahlen, Strings, Arrays - sie alle sind Objekte.
Wir nutzen Objekte meist, indem wir ihnen Namen geben, entweder über Variablen oder Konstanten.
Variablen werden immer in Snake Case geschrieben.
Eine Variable kann im Laufe ihres Lebens auf verschiedene Objekte verweisen.
Zum Beispiel kann my_first_variable mit dem Operator = viele Male definiert und neu definiert werden:
my_first_variable = 1
my_first_variable = "Some string"
my_first_variable = SomeComplexObject.new
Konstanten hingegen sind dafür gedacht, nur einmal zugewiesen zu werden. Sie müssen mit einem Großbuchstaben beginnen und werden normalerweise in Großbuchstaben geschrieben, wobei die Wörter durch Unterstriche getrennt sind. Zum Beispiel:
MY_FIRST_CONSTANT = 10
# Redefining not allowed
# MY_FIRST_CONSTANT = "Some String"
Ruby ist in Klassen organisiert.
Klassen werden mit dem Schlüsselwort class definiert, gefolgt vom Namen der Klasse.
Objekte werden in der Regel erstellt, indem man Klassen mit der Methode .new instanziiert.
Zum Beispiel:
# Define the class
class Calculator
#...
end
# Create an instance of it and assign it to a variable
my_first_calc = Calculator.new
Funktionseinheiten werden in Methoden gekapselt, ähnlich wie Funktionen in anderen Sprachen.
Eine Methode kann mit Positionsargumenten, Schlüsselwortargumenten (die mit der Syntax : definiert und aufgerufen werden) oder ganz ohne Argumente definiert werden.
Methoden geben entweder implizit das Ergebnis der zuletzt ausgewerteten Anweisung zurück oder explizit ein Objekt über das Schlüsselwort return.
class Calculator
# Positional arguments
def add(num1, num2)
return num1 + num2 # Explicit return
end
# Keyword arguments
def multiply(num1:, num2:)
num1 * num2 # Implicit return
end
end
Methoden werden mit der Syntax . aufgerufen:
calc = Calculator.new
calc.add(1, 3)
calc.multiply(num1: 2, num2: 5)
In dieser Übung schreibst du etwas Code, um dir zu helfen, eine brillante Lasagne aus deinem Lieblingskochbuch zu kochen.
Du hast vier Aufgaben, die alle mit der Zeit zu tun haben, die du mit dem Kochen der Lasagne verbringst.
Definiere die Konstante Lasagna::EXPECTED_MINUTES_IN_OVEN, die zurückgibt, wie viele Minuten die Lasagne im Ofen bleiben sollte. Laut dem Kochbuch beträgt die erwartete Ofenzeit in Minuten 40:
Lasagna::EXPECTED_MINUTES_IN_OVEN
# => 40
Definiere die Methode Lasagna#remaining_minutes_in_oven, die die tatsächlichen Minuten, die die Lasagne bereits im Ofen war, als Parameter entgegennimmt und zurückgibt, wie viele Minuten die Lasagne noch im Ofen bleiben muss, basierend auf der erwarteten Ofenzeit in Minuten aus der vorherigen Aufgabe.
lasagna = Lasagna.new
lasagna.remaining_minutes_in_oven(30)
# => 10
Definiere die Methode Lasagna#preparation_time_in_minutes, die die Anzahl der Schichten, die du der Lasagne hinzugefügt hast, als Parameter entgegennimmt und zurückgibt, wie viele Minuten du mit der Vorbereitung der Lasagne verbracht hast, wenn man davon ausgeht, dass dich jede Schicht 2 Minuten Vorbereitung kostet.
lasagna = Lasagna.new
lasagna.preparation_time_in_minutes(2)
# => 4
Definiere die Methode Lasagna#total_time_in_minutes, die zwei benannte Parameter entgegennimmt: der Parameter number_of_layers ist die Anzahl der Schichten, die du der Lasagne hinzugefügt hast, und der Parameter actual_minutes_in_oven ist die Anzahl der Minuten, die die Lasagne im Ofen war. Die Funktion sollte zurückgeben, wie viele Minuten du insgesamt mit dem Kochen der Lasagne verbracht hast, also die Summe aus der Vorbereitungszeit in Minuten und der Zeit in Minuten, die die Lasagne in diesem Moment im Ofen verbracht hat.
lasagna = Lasagna.new
lasagna.total_time_in_minutes(number_of_layers: 3, actual_minutes_in_oven: 20)
# => 26
Melde dich bei Exercism an, um Ruby mit 21 Konzepte121 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.