## Einleitung

Dies ist eine kleine Ruby-Anleitung, für die man nicht mehr als 20
Minuten zum Lesen benötigen sollte. Voraussetzung ist, dass Du Ruby
bereits installiert hast. (Falls nicht, solltest Du vor dem Weiterlesen
[Ruby herunterladen](/de/downloads/) und installieren.)

## Interaktives Ruby

Zuerst starten wir die interaktive Ruby-Konsole: IRB.

* Wenn Du **macOS** benutzt, öffne `Terminal`, gib `irb` ein und
  drücke Enter.
* Wenn Du **Linux** benutzt, öffne eine Shell, gib `irb` ein und drücke
  Enter.
* Wenn Du **Windows** benutzt, öffne `Interactive Ruby` aus dem
  Ruby-Ordner des Start-Menüs heraus.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):001:0&gt;</span></code></pre></figure>

So, IRB ist nun gestartet. Wie geht es weiter?

Gib folgendes ein: `"Hallo, Welt!"`

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):001:0&gt;</span><span class="w"> </span><span class="s2">"Hallo, Welt!"</span>
<span class="p">=&gt;</span> <span class="s2">"Hallo, Welt!"</span></code></pre></figure>

## Ruby hört auf Dich!

Was ist gerade passiert? Haben wir etwa gerade das kürzeste “Hallo,
Welt!”-Programm der Welt geschrieben? Nun, nicht direkt: Mit der zweiten
Zeile teilt uns IRB lediglich das Ergebnis des letzten ausgewerteten
Ausdrucks mit. Wenn wir “Hallo, Welt!” auf den Bildschirm ausgeben
wollen, müssen wir ein bisschen mehr tun:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):002:0&gt;</span><span class="w"> </span><span class="nb">puts</span> <span class="s2">"Hallo, Welt!"</span>
<span class="go">Hallo, Welt!
</span><span class="p">=&gt;</span> <span class="kp">nil</span></code></pre></figure>

`puts` ist das grundlegende Kommando, um etwas in Ruby auf den
Bildschirm auszugeben. Und was bedeutet `=> nil`? Das ist das Ergebnis
des Ausdrucks. `puts` liefert immer nil zurück (Rubys Wert für “rein gar
nichts”).

## Dein kostenloser Taschenrechner

Wir haben schon genügend Informationen, um IRB als einfachen
Taschenrechner zu benutzen:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):003:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">+</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">5</span></code></pre></figure>

Drei plus Zwei. Das war nicht schwer. Was ist mit Drei *mal* Zwei? Man
könnte das nun einfach eintippen, kurz genug ist es jedenfalls. Du
kannst aber auch zurückgehen und die letzte Eingabe verändern. Drücke
die **Pfeil-nach-oben**-Taste auf der Tastatur und sieh nach, ob die
Zeile mit `3+2` wieder erscheint. Falls ja, kannst Du mit der
Pfeil-nach-links-Taste den Cursor direkt hinter das `+`-Zeichen setzen,
dort einfach Backspace drücken und es so zu einem `*`-Zeichen (dem
Multiplikations-Operator) umändern.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):004:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">*</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">6</span></code></pre></figure>

Probieren wir als nächstes Drei zum Quadrat aus:

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):005:0&gt;</span><span class="w"> </span><span class="mi">3</span><span class="o">**</span><span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">9</span></code></pre></figure>

In Ruby sagt man `**`, wenn man “hoch” sagen will. Aber was, wenn man
den umgekehrten Weg gehen und die Quadratwurzel von etwas finden will?

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):006:0&gt;</span><span class="w"> </span><span class="no">Math</span><span class="p">.</span><span class="nf">sqrt</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span>
<span class="p">=&gt;</span> <span class="mf">3.0</span></code></pre></figure>

Moment, wie war das? So wird die Quadratwurzel von Neun berechnet? Damit
liegst Du vollkommen richtig. Aber sehen wir uns das genauer an!
Zuallererst: Was genau ist `Math`?

## Module gruppieren Code nach Themen

`Math` ist ein in Ruby eingebautes Mathematik-Modul. Module spielen zwei
wichtige Rollen in Ruby. Dieses Beispiel zeigt die erste: Die
Gruppierung ähnlicher Methoden unter einem bestimmten Namen. `Math`
enthält so zum Beispiel auch Methoden wie `sin()` und `tan()`.

Als nächstes kam in obigem Kommando ein Punkt. Was macht der Punkt?
Damit identifiziert man den Empfänger einer Mitteilung. Und die
Mitteilung lautet in diesem Fall `sqrt(9)`. Das bedeutet: “Rufe die
Methode `sqrt` (kurz für “square root”, d.h. “Wurzel”) auf und übergib
Ihr den Parameter `9`.”

Das Ergebnis dieses Methodenaufrufs ist der Wert `3.0`. Es fällt auf,
dass der Wert nicht einfach `3` ist. Das ist deshalb der Fall, weil die
Wurzel einer Zahl in den meisten Fällen keine ganze Zahl sein wird, also
liefert die Methode immer eine Fließkomma-Zahl.

Was, wenn wir nun das Ergebnis eine dieser Rechnungen behalten wollen?
Dann weisen wir das Ergebnis einfach einer Variablen zu.

<figure class="highlight"><pre><code class="language-irb" data-lang="irb"><span class="gp">irb(main):007:0&gt;</span><span class="w"> </span><span class="n">a</span> <span class="o">=</span> <span class="mi">3</span> <span class="o">**</span> <span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">9</span>
<span class="gp">irb(main):008:0&gt;</span><span class="w"> </span><span class="n">b</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">**</span> <span class="mi">2</span>
<span class="p">=&gt;</span> <span class="mi">16</span>
<span class="gp">irb(main):009:0&gt;</span><span class="w"> </span><span class="no">Math</span><span class="p">.</span><span class="nf">sqrt</span><span class="p">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="p">)</span>
<span class="p">=&gt;</span> <span class="mf">5.0</span></code></pre></figure>

So nützlich das auch für einen Taschenrechner ist: Wir entfernen uns von
der traditionellen `"Hallo, Welt!"`-Botschaft, auf die Anleitungen für
Anfänger für gewöhnlich den Fokus setzen … [Also kehren wir flugs wieder
dahin zurück.](2/)
