Yoda conditions, também conhecida como notação Yoda, é uma forma de formatação de código que inverte a ordem padrão de uma declaração de igualdade condicional. O estilo de formatação é nomeado para o caractere Star Wars cuja sintaxe tipicamente envolve uma ordem objeto-subjetivo-verbo em vez da ordem padrão do objeto-subjetivo-verbo-objeto em inglês: "Patience you must have" por exemplo, em vez de "You must have patience"
Na programação, as condições Yoda envolvem a troca das posições da variável com a de a constante, função ou literal em uma expressão condicional de igualdade.
Em Know The Code, Tonya Mork oferece os seguintes exemplos:
<Tipical conditional structure < | >Yoda conditions |
1 if ( == 'post' ) { 2 // do stuff 3 } |
1 if ( 'post' == ) { 2 // do stuff 3 } |
Esse formato força um erro no caso de certos erros de digitação. Se, por exemplo, o programador digita um operador de atribuição (=) na instrução quando pretende digitar o operador de igualdade (==), o formato Yoda forçará um erro de sintaxe. O erro impede que o código seja executado e, por causa do erro, possivelmente causando comportamento não intencional.
De acordo com Tonya Mark, prevenir comportamentos não intencionais nessa situação é a única vantagem de usar o Yoda condições e a única razão para usá-lo. A principal desvantagem das condições do Yoga é o fato de que elas tornam o código mais incômodo de ler e tornam a revisão do código mais difícil do que o necessário.