Linguagem de Programação Crystal

&&

O && (and) avalia seu lado esquerdo. Se ele for verdadeiro, ele avalia o seu lado direito e recebe seu valor. Caso contrário, ele recebe o valor do lado esquerdo. Seu tipo é a união dos tipos de ambos os lados.

Você pode pensar em um && como açúcar sintático para um if:

alguma_expressao_1 && alguma_expressao_2

# O código acima é o mesmo que:
tmp = alguma_expressao_1
if tmp
  alguma_expressao_2
else
  tmp
end