Olá a todos. Sou iniciante em Ruby. Comecei a poucos dias. Estou estudando pelo livro da casa do código. Em determinado momento, tenho essas duas classes
# encoding: utf-8
class Livro
attr_accessor :valor
attr_reader :categoria
def initialize(autor, isbn = "1", numero_de_paginas, valor, categoria)
@autor = autor
@isbn = isbn
@numero_de_paginas = numero_de_paginas
@valor = valor
@categoria = categoria
end
def to_s
"Autor: #{@autor}, Isbn: #{@isbn}, Número de Páginas: #{@numero_de_paginas}, Preço: #{@valor}, Categoria: #{@categoria}"
end
end
# encoding: utf-8
class Biblioteca
attr_reader :livros
def initialize
@livros = {}
end
def adiciona(livro)
@livros[livro.categoria] ||= []
@livros[livro.categoria] << livro
end
def livros
@livros.values.flatten
end
end
minha dúvida consiste na seguinte linha de código
@livros[livro.categoria] ||= []
Não entendi o esse sinal de || antes da atribuição. Alguém pode me esclarecer?