[RESOLVIDO] Como usar "?" e ":" ?
+3
NKKF
JohnRambo
LucioHenrique890
7 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como usar "?" e ":" ?
Olá pessoal, andei vendo uns tutoriais gringo e vi que varios deles usam os seguintes simbolos no script "?" e ":".
Queria saber como usa esses simbolos.
VLW
Queria saber como usa esses simbolos.
VLW
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Como usar "?" e ":" ?
Isso chama-se operador ternário e serve para expressões boolenas.
Você pode fazer o seguinte código:
Mas de uma forma mais simplificada e 'limpa' você também pode fazer:
Ou seja, se pontos for maior que 50, 'variavel' recebe o valor 10, se não ela recebe 100.
Chama-se operador ternário porque temos sempre três validações/operações, a validação relacional (pontos > 50), a validação booleana verdadeira (?) e o 'else', a validação falsa (: ).
Então se algo retornar true referente à validação relacional, ela deve estar depois da interrogação '?', caso contrário deve estar após os dois pontos ':'.
A operação ternária serve para deixar o código mais compacto e evitar usar um if-else numa situação muito simples, mas você pode viver sem ela.
Outro exemplo do uso do operador ternário:
Onde o sprite do objeto iria ser alterado conforme a tecla que o usuário apertasse, mas esse código também poderia ser feito assim:
Você pode fazer o seguinte código:
- Código:
if (pontos > 50)
variavel = 10;
else
variavel = 100;
Mas de uma forma mais simplificada e 'limpa' você também pode fazer:
- Código:
variavel = pontos > 50 ? 10 : 100;
Ou seja, se pontos for maior que 50, 'variavel' recebe o valor 10, se não ela recebe 100.
Chama-se operador ternário porque temos sempre três validações/operações, a validação relacional (pontos > 50), a validação booleana verdadeira (?) e o 'else', a validação falsa (: ).
Então se algo retornar true referente à validação relacional, ela deve estar depois da interrogação '?', caso contrário deve estar após os dois pontos ':'.
A operação ternária serve para deixar o código mais compacto e evitar usar um if-else numa situação muito simples, mas você pode viver sem ela.
Outro exemplo do uso do operador ternário:
- Código:
SpriteRenderer sp;
void Start(){
sp = GetComponent<SpriteRenderer>();
}
void Update(){
sp.sprite = Input.GetKeyDown(KeyCode.A) ? Resources.Load("sprite1",
typeof(Sprite)) as Sprite : (Input.GetKeyDown(KeyCode.B) ? Resources.Load("sprite2",
typeof(Sprite)) as Sprite : Resources.Load("sprite3", typeof(Sprite)) as Sprite);
}
}
Onde o sprite do objeto iria ser alterado conforme a tecla que o usuário apertasse, mas esse código também poderia ser feito assim:
- Código:
SpriteRenderer sp;
void Start(){
sp = GetComponent<SpriteRenderer>();
}
void Update(){
if (Input.GetKeyDown(KeyCode.A))
sp.sprite = Resources.Load("sprite1", typeof(Sprite)) as Sprite;
else if (Input.GetKeyDown(KeyCode.B))
sp.sprite = Resources.Load("sprite2", typeof(Sprite)) as Sprite;
else
sp.sprite = Resources.Load("sprite3", typeof(Sprite)) as Sprite;
}
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [RESOLVIDO] Como usar "?" e ":" ?
As expressões que utilizam esses tipos de símbolos são bem interessantes no contexto da escrita do código, como a MayLeone e JohnRambo já explicaram através de referências, são uma forma simplificada de inserir um (if, else). imagine ter fazer uma quantidade grande verificações do tipo utilizando uma mesma estrutura, esses símbolos dão uma diminuída no código... mas de qualquer forma vai ter de repeti-los também se for o caso.
Tegh- Avançado
- PONTOS : 2654
REPUTAÇÃO : 97
Idade : 23
Respeito as regras :
Tegh- Avançado
- PONTOS : 2654
REPUTAÇÃO : 97
Idade : 23
Respeito as regras :
Re: [RESOLVIDO] Como usar "?" e ":" ?
eu ia até responder, mas já tem umas 4 respostas. então tópico dado como resolvido...
Tópicos semelhantes
» [RESOLVIDO] Como usar os botões com o teclado ?
» [RESOLVIDO] Como usar LookAt em apenas um eixo?
» [RESOLVIDO] Como usar o Server Build Corretamente ?
» [Resolvido] Como usar o Multi Touch para movimentar um personagem ?
» [RESOLVIDO] Como usar o touchpad da unity para orbital o personagem em terceira pessoas ?
» [RESOLVIDO] Como usar LookAt em apenas um eixo?
» [RESOLVIDO] Como usar o Server Build Corretamente ?
» [Resolvido] Como usar o Multi Touch para movimentar um personagem ?
» [RESOLVIDO] Como usar o touchpad da unity para orbital o personagem em terceira pessoas ?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos