Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Was ist Memoization in Ruby?

Beitrags-Cover: Was ist Memoization in Ruby?
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Memoization - ist, wenn Ruby das Ergebnis einer Berechnung "merkt", um es nicht erneut zu berechnen. Es wird zur Optimierung verwendet - besonders, wenn die Methode viele Male aufgerufen wird.

Wie funktioniert @x ||= ...

@x ||= fetch_x
bedeutet:
Wenn @x noch keinen Wert hat (d.h. nil oder false), dann führe fetch_x aus und speichere das Ergebnis in @x. Andernfalls - gib einfach das bereits gespeicherte zurück.

Unterschied zur einfachen Zuweisung

@x = fetch_x    # führt fetch_x JEDES Mal aus
@x ||= fetch_x  # führt fetch_x nur beim ERSTEN Mal aus
Zum Beispiel:
def expensive
  puts "Berechne..."
  42
end

def answer
  @answer ||= expensive
end

answer  # => Berechne... 42
answer  # => 42 (ohne zweite Berechnung!)
Aber vorsichtig:
||= funktioniert nicht, wenn der Wert false sein kann:
@flag ||= true
# wenn @flag = false, wird Ruby dies als "leer" betrachten und es auf true setzen
Wenn man sogar false speichern muss, ist es besser zu schreiben:
@flag = true if @flag.nil?
Gefällt dir?Reagieren
🧵

Dieser Beitrag hat noch keine Ergänzungen vom Autor.

==, gleich?, eql?, === in Ruby: was sie überprüfen und wann man sie verwenden sollte
29. Okt '25, 20:47 Uhr

==, gleich?, eql?, === in Ruby: was sie überprüfen und wann man sie verwenden sollte

Нотатки про Ruby та RoR
Was passiert, wenn man [1, 2, 3].map(&Person) aufruft?
29. Okt '25, 17:54 Uhr

Was passiert, wenn man [1, 2, 3].map(&Person) aufruft?

Нотатки про Ruby та RoR
Was sind Proc und Lambda in Ruby?
28. Okt '25, 15:57 Uhr

Was sind Proc und Lambda in Ruby?

Нотатки про Ruby та RoR
28. Okt '25, 14:42 Uhr

Wie funktioniert &:to_s in Ruby und was ist Symbol#to_proc

Нотатки про Ruby та RoR
module_function in Ruby: wenn die Methoden eines Moduls sowohl als Modulmethoden als auch als Funktionen verfügbar sind
29. Okt '25, 21:53 Uhr

module_function in Ruby: wenn die Methoden eines Moduls sowohl als Modulmethoden als auch als Funktionen verfügbar sind

Нотатки про Ruby та RoR
Include, Extend, Prepend in Ruby: wie sie funktionieren und wo der Unterschied liegt
29. Okt '25, 21:20 Uhr

Include, Extend, Prepend in Ruby: wie sie funktionieren und wo der Unterschied liegt

Нотатки про Ruby та RoR
Singleton-Klasse (Eigenklasse) in Ruby: was ist das und wozu wird sie benötigt
29. Okt '25, 18:29 Uhr

Singleton-Klasse (Eigenklasse) in Ruby: was ist das und wozu wird sie benötigt

Нотатки про Ruby та RoR
is_a?, kind_of?, instance_of? — wie prüft Ruby den Typ eines Objekts?
30. Okt '25, 19:55 Uhr

is_a?, kind_of?, instance_of? — wie prüft Ruby den Typ eines Objekts?

Нотатки про Ruby та RoR
&& vs and — der Unterschied in Ruby, der Ihren Code brechen kann
30. Okt '25, 20:23 Uhr

&& vs and — der Unterschied in Ruby, der Ihren Code brechen kann

Нотатки про Ruby та RoR
Variablen in Ruby: @, @@ und Klasseninstanzvariablen
30. Okt '25, 20:54 Uhr

Variablen in Ruby: @, @@ und Klasseninstanzvariablen

Нотатки про Ruby та RoR
Der Unterschied zwischen blank?, present?, empty? und nil? in Ruby
30. Okt '25, 21:06 Uhr

Der Unterschied zwischen blank?, present?, empty? und nil? in Ruby

Нотатки про Ruby та RoR
Was ist Middleware in Ruby on Rails und wann wird sie verwendet?
4. Nov '25, 10:39 Uhr

Was ist Middleware in Ruby on Rails und wann wird sie verwendet?

Нотатки про Ruby та RoR
Was ist der Vanilla Rails-Ansatz?
14. Nov '25, 16:48 Uhr

Was ist der Vanilla Rails-Ansatz?

Нотатки про Ruby та RoR