Zeichenketten (Strings) |
|
Variablen |
Ruby benutzt spezielle Namen für Dinge, die wir schon kennen. Zum Beispiel benutzt es das Wort Floats für Fließkommazahlen. Hier mehr Definitionen:
Objekt: Das ist einfach irgendeine Menge an Daten. Wie die Zahl 3 oder die Zeichenkette 'hallo'.
Klasse: Ruby spaltet alles in Klassen auf. Wie Integers, Fließkommazahlen und Zeichenketten.
Methode: Dies sind Dinge, die man mit einem Objekt anstellen kann. Zum Beispiel können Sie Integers addieren, also ist + eine Methode.
Sie haben schon drei Klassen für Dinge gesehen, die Sie schon kennnen:
Alter Name | Ruby Klasse |
---|---|
Integer | Integer |
Fließkommazahlen | Float |
Zeichenketten | String |
Sie haben auch schon einige Methoden kennengelernt:
Klasse | Einige Methoden |
---|---|
Integer | + - / * % ** |
Float | + - / * % ** |
String | capitalize, reverse, length, upcase |
Machen Sie sich den Unterschied zwischen Klassen und Methoden klar. Ein Objekt ist eine Menge von Daten. Eine Klasse sagt, um welche Art von Daten es sich handelt.
Zum Beispiel sind 3 und 5 verschiedene Zahlen. Sie sind nicht dasselbe Objekt. Aber sie sind beide Integerwerte, somit gehören sie zur selben Klasse. Hier sind mehr Beispiele:
Objekt | Klasse |
---|---|
2 | Integer |
-5 | Integer |
7.2 | Float |
3.14 | Float |
'hello' | String |
'world' | String |
Verschiedene Klassen haben unterschiedliche Methoden. Hier sind einige Unterschiede, die Sie schon gesehen haben.
Aus diesem Grund verwenden wir die Notation Klasse#Methode um klarzustellen, welche Methode wir meinen. Z.B. werde ich Integer#+ schreiben um es von Float#+ und String#+ zu unterscheiden. Ich kann auch schreiben, dass String#upcase existiert, aber Integer#upcase nicht.
Ruby hat Methoden, um zwischen Klassen zu konvertieren:
Methode | Konvertiert | |
---|---|---|
Von | Nach | |
String#to_i | string | integer |
String#to_f | string | float |
Float#to_i | float | integer |
Float#to_s | float | string |
Integer#to_f | integer | float |
Integer#to_s | integer | string |
Beispiel:
Ruby kann sagen, um welche Klasse es sich bei einem Objekt handelt. Tippen Sie in irb:
12.is_a?(Integer) 12.is_a?(Float) 12.is_a?(String) '12'.is_a?(Integer) '12'.is_a?(Float) '12'.is_a?(String) 12.0.is_a?(Integer) 12.0.is_a?(Float) 12.0.is_a?(String) |
Welche Unterschiede sehen Sie?
Geben Sie ein:
12 + 12 '12' + '12' '12'.to_i + 12 '12' + 12.to_s 12 * 12 '12' * 12 |
Bekommen Sie die Ergebnisse, die Sie erwartet haben?
Wie würden Sie die Unterschiede zwischen 12, '12' und 12.0 einer anderen Person erklären?
Zeichenketten (Strings) |
|
Variablen |