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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top