Swego czasu, gdy przeglądałem kod napisany w języku Ruby, zauważyłem użycie operatora ||=, który bardzo mnie zaciekawił. Myślę, że nie zaskoczę nikogo mówiąc, że w pierwszej chwili jego część || skojarzyła mi się z reprezentacją alternatywy logicznej - jak się później okazało, ma to swój sens, gdy już się wie do czego ten operator służy. A mianowicie odpowiada on za przypisanie wartości do zmiennej, jeżeli żadna wartość nie była przypisana wcześniej (czyli zmienna ma wartość nil).
Do każdej zmiennej, która nie ma wartości true (jako stanu).
Po drugie, dopóki zmienna nie jest zainicjowana, nie ma żadnej wartości. Null oznacza tyle co że albo wartości nie ma albo jest nieustalona (i jest to bazodanowy koncept).
Jeśli znasz SQL, to poszukaj informacji czemu nie można używać w WHERE takiego warunku: name = NULL, a zamiast tego name IS NULL
Tak dokładniej rzecz biorąc ten operator wyrażenie foo ||= bar rozwija do foo || foo = bar. Czyli gdy foo zwraca inną wartość niż nil lub false to przypisania nie ma.