Lembrando o Operador Ternário Sintaxe
-
07-07-2019 - |
Pergunta
Alguém tem um bom truque para lembrar a sintaxe ternário padrão?
Especificamente se o '?' ou ':' vem em primeiro lugar. Tenho consistentemente chegado tão para trás ao longo dos anos.
Solução
A condição que está a verificar é como uma pergunta, então o ponto de interrogação vem em primeiro lugar.
x > 0 ? 1 : 0
Pense desta declaração como três frases em inglês: "É x maior que 0 Then 1. Caso contrário, 0.?" Você tem uma frase para cada cláusula da declaração.
O predicado:
x > 0 ? /* Is x greater than 0? */
A "verdadeira" ramo:
1 /* Then 1. */
O "false" ramo:
: 0 /* Else, 0. */
Outras dicas
Quanto lembrar qual o símbolo que vem em primeiro lugar, eu só acho que o fato de que a primeira parte é uma pergunta, "É verdade ou não?", De modo que o ponto de interrogação vai primeiro.
Eu acho que da sintaxe dessa maneira
Question ? Yes : No
em python eu lê-lo como uma sentença normal de Inglês:
a equals b if condition is true else c
Pense nisso desta maneira: a declaração ternário é composto de três partes: a questão, o código para executar se a resposta à pergunta é "sim" e o código se a resposta for "não". O "?" vem depois da pergunta como ele faz em frases em inglês.
"?" é um ponto de interrogação assim que significa "se".
Um meio de cólon "agora se trata", "e depois fazer".
A coisa boa sobre o operador ternário é que você não é obrigado a usá-lo, especialmente se você está tendo problemas para lembrar a sintaxe. Basta usar uma instrução IF-que é mais legíveis na maioria das vezes.
E não -. Ternário não tem melhor performace em seguida, uma instrução if
É assim:
myVariable = this.testMethod() ? 'value for true case' : 'value for false case'
Se você está testes de unidade ainda passar quando você errar, então, ou não importa ou seus testes não estão cobrindo o suficiente dos caminhos através do código. Se há muito tempo uma lacuna entre a digitá-lo e obter uma aprovação / reprovação dos testes, isso é outra questão. Muito poucas pequenas lêndeas sintaxe importa na presença de bom, testes rápidos.