EMZETT.
Login

Kurz: - Einrückung: zwei Leerzeichen - snake_case für Methoden/Variablen, CamelCase für Klassen, GROSS für Konstanten - Methoden mit ? liefern bool, mit ! verändern - Bevorzuge Blöcke und Enumerable statt for/while - RuboCop prüft den.

Teil des Kurses Ruby

Kapitel 12 von 12 im Kurs Ruby (Abschnitt „Nachschlagen“). Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Syntax auf einen Blick

name = "Mia"                  # Variable
NAME = 1                      # Konstante
@feld, @@klassenfeld, $global
puts "Hallo #{name}"
if x then .. elsif .. else .. end      puts "ja" if x      unless x ..
case v when 1 then .. when 2..5 .. else .. end
while c .. end    until c .. end    loop do .. end    3.times { |i| .. }
def methode(a, b = 1, *rest, key: 0, **opts, &block) .. end
class A < B; include M; attr_accessor :x; def initialize(x) = @x = x; end
module M; def hallo = "hi"; end
begin .. rescue Fehler => e .. ensure .. end

Wichtige Klassen und Methoden

KlasseMethoden (Auswahl)
Integer/Float+ - * / % **, abs round floor ceil times upto step divmod
Stringlength upcase downcase strip split sub gsub include? start_with? center rjust to_i to_sym * %
Symbolto_s to_proc
Arraypush pop shift unshift first last map select reject reduce sort sort_by uniq flatten zip take drop each_slice sum min max tally
Hashfetch dig key? keys values each map select transform_values merge to_a sort_by group_by
Range(1..5) (1...5) to_a step include? sum lazy
Proccall curry >> <<
Objectclass is_a? respond_to? send nil? frozen? dup tap then inspect

Enumerable-Spickzettel

ZielMethode
Umformenmap, flat_map, filter_map, zip
Filternselect, reject, find, take_while, partition
Zusammenfassenreduce, sum, count, min_by, max_by, tally
Gruppierengroup_by, each_slice, each_cons, chunk_while
Prüfenany?, all?, none?, one?, include?
Reihenfolgesort, sort_by, reverse, each_with_index

Häufige Fehlermeldungen

MeldungUrsache
undefined method 'x' for nilWert ist nil: mit &. oder Prüfung absichern
undefined local variable or methodTippfehler oder Variable nicht definiert
wrong number of arguments (given 1, expected 2)falsche Argumentanzahl
no implicit conversion of Integer into String"a" + 1: "a" + 1.to_s oder Interpolation
uninitialized constantKlasse/Modul nicht geladen oder falsch geschrieben (require)
can't modify frozen StringString ist unveränderlich: dup oder +""
stack level too deepunendliche Rekursion

Konventionen

  • Einrückung: zwei Leerzeichen
  • snake_case für Methoden/Variablen, CamelCase für Klassen, GROSS für Konstanten
  • Methoden mit ? liefern bool, mit ! verändern
  • Bevorzuge Blöcke und Enumerable statt for/while
  • RuboCop prüft den Stil

Weiterlernen

  • Offizielle Dokumentation ruby-doc.org und Ruby Koans
  • Buch: Programming Ruby (“Pickaxe”), The Well-Grounded Rubyist
  • Übungen: Exercism (Ruby-Track), Advent of Code
  • Tutorial: Rails Guides (guides.rubyonrails.org)

Merke

  • Alles ist ein Objekt, Blöcke sind das Herz des Stils
  • Enumerable und Hash decken den Großteil des Alltags ab
  • Tests (Minitest/RSpec), Bundler und RuboCop gehören zum Projekt

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Web, Rails und Ökosystem

Alle Kapitel: Ruby im Überblick