Significado de ponto de interrogação duplo em Ruby

Significado de ponto de interrogação duplo em Ruby
Ao trabalhar com as bases de código Ruby, você pode encontrar uma sintaxe que usa pontos de interrogação duplos. Neste tutorial, resumiremos o que esses operadores significam e como eles funcionam no contexto de uso.

Rubi? Operador

Em Ruby, o ? operador é um operador ternário. É usado como uma taquigrafia para uma declaração se ... else. A sintaxe é a seguinte:

doença ? action_if_true: Action_if_false

Nesse caso, a condição é avaliada como verdadeira ou falsa. Se a condição for verdadeira, a expressão antes da: é executada. Caso contrário, a expressão após: é executada.

Podemos demonstrar isso usando um exemplo como mostrado abaixo:

x = 5
coloca x> 0 ? "positivo negativo"

Nesse caso, o código testará se o valor de x é maior que 0. Se for verdade, o bloco imprimirá positivo. Caso contrário, ele imprimirá negativo.

IRB (principal): 002: 0> coloca x> 0 ? "positivo negativo"
positivo
=> nil

O mesmo caso se aplica se o valor for negativo como mostrado:

IRB (principal): 003: 0> x = -5
IRB (principal): 004: 0> coloca x> 0 ? "positivo negativo"
negativo
=> nil

Você também pode encadear várias condições usando o ? Operador, como mostrado no exemplo abaixo:

x = 5
coloca x> 0 ? "positivo": x == 0 ? "Zero": "negativo"

Nesse caso, a consulta testará o valor de x contra três condições. Se o valor for maior que 0, o código imprimirá positivo. Se o valor for igual a zero, o código imprimirá a string zero. E, finalmente, se nenhuma dessas condições for verdadeira, o código imprimirá “negativo.”

Também podemos usar o ternário ? operador em um método e nomes de variáveis. Isso chamado de "operador de navegação seguro", OR & &. operador e é usado para verificar se o receptor da chamada do método não é nulo antes de ligar para o método.

x = "Olá"
x &.upcase # Olá
y = nil
Y &.UpCase # nil

Também podemos usar o operador ternário para atribuir valor como demonstrado abaixo:

x = 5
y = x> 0 ? 1: -1

Nesse caso, y manterá o valor de 1.

Conclusão

Isso cobriu o básico de trabalhar com o operador ternário Ruby para executar várias operações. Vale a pena notar que o operador ternário tem uma precedência mais baixa do que a maioria dos outros operadores em Ruby. Portanto, pode ser necessário usar parênteses para garantir que as expressões sejam avaliadas na ordem pretendida.

Embora o operador ternário seja adequado para configurar rapidamente uma declaração condicional, ele não fornece uma boa legibilidade de código. Portanto, recomendamos o uso do tradicional se ... senão bloqueio sempre que necessário.