Solidez - Operadores
O que é um operador?
Vamos dar uma expressão simples 4 + 5 is equal to 9. Aqui 4 e 5 são chamadosoperands e '+' é chamado de operator. Solidity oferece suporte aos seguintes tipos de operadores.
- Operadores aritméticos
- Operadores de comparação
- Operadores lógicos (ou relacionais)
- Operadores de atribuição
- Operadores condicionais (ou ternários)
Vamos dar uma olhada em todos os operadores, um por um.
Operadores aritméticos
O Solidity suporta os seguintes operadores aritméticos -
Suponha que a variável A tenha 10 e a variável B tenha 20, então -
Sr. Não. | Operador e descrição |
---|---|
1 | + (Addition) Adiciona dois operandos Ex: A + B dará 30 |
2 | - (Subtraction) Subtrai o segundo operando do primeiro Ex: A - B dará -10 |
3 | * (Multiplication) Multiplique os dois operandos Ex: A * B dará 200 |
4 | / (Division) Divida o numerador pelo denominador Ex: B / A dará 2 |
5 | % (Modulus) Produz o resto de uma divisão inteira Ex: B% A dará 0 |
6 | ++ (Increment) Aumenta um valor inteiro em um Ex: A ++ dará 11 |
7 | -- (Decrement) Diminui um valor inteiro em um Ex: A-- dará 9 |
Operadores de comparação
O Solidity oferece suporte aos seguintes operadores de comparação -
Suponha que a variável A tenha 10 e a variável B tenha 20, então -
Sr. Não. | Operador e descrição |
---|---|
1 | = = (Equal) Verifica se o valor de dois operandos é igual ou não, caso positivo a condição torna-se verdadeira. Ex: (A == B) não é verdade. |
2 | != (Not Equal) Verifica se o valor de dois operandos são iguais ou não, se os valores não são iguais, a condição se torna verdadeira. Ex: (A! = B) é verdade. |
3 | > (Greater than) Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim, a condição se torna verdadeira. Ex: (A> B) não é verdade. |
4 | < (Less than) Verifica se o valor do operando esquerdo é menor que o valor do operando direito, se sim, a condição se torna verdadeira. Ex: (A <B) é verdade. |
5 | >= (Greater than or Equal to) Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim, a condição se torna verdadeira. Ex: (A> = B) não é verdade. |
6 | <= (Less than or Equal to) Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim, a condição se torna verdadeira. Ex: (A <= B) é verdadeiro. |
Operadores lógicos
Solidity suporta os seguintes operadores lógicos -
Suponha que a variável A tenha 10 e a variável B tenha 20, então -
Sr. Não. | Operador e descrição |
---|---|
1 | && (Logical AND) Se ambos os operandos forem diferentes de zero, a condição se torna verdadeira. Ex: (A && B) é verdade. |
2 | || (Logical OR) Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. Ex: (A || B) é verdade. |
3 | ! (Logical NOT) Reverte o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT a tornará falsa. Ex:! (A && B) é falso. |
Operadores bit a bit
O Solidity oferece suporte aos seguintes operadores bit a bit -
Suponha que a variável A tenha 2 e a variável B tenha 3, então -
Sr. Não. | Operador e descrição |
---|---|
1 | & (Bitwise AND) Ele executa uma operação booleana AND em cada bit de seus argumentos inteiros. Ex: (A e B) é 2. |
2 | | (BitWise OR) Ele executa uma operação booleana OR em cada bit de seus argumentos inteiros. Ex: (A | B) é 3. |
3 | ^ (Bitwise XOR) Ele executa uma operação booleana OU exclusiva em cada bit de seus argumentos inteiros. OR exclusivo significa que o operando um é verdadeiro ou o operando dois é verdadeiro, mas não ambos. Ex: (A ^ B) é 1. |
4 | ~ (Bitwise Not) É um operador unário e opera invertendo todos os bits do operando. Ex: (~ B) é -4. |
5 | << (Left Shift) Ele move todos os bits em seu primeiro operando para a esquerda pelo número de casas especificado no segundo operando. Novos bits são preenchidos com zeros. Deslocar um valor para a esquerda em uma posição é equivalente a multiplicá-lo por 2, deslocar duas posições é equivalente a multiplicar por 4 e assim por diante. Ex: (A << 1) é 4. |
6 | >> (Right Shift) Operador binário de deslocamento à direita. O valor do operando esquerdo é movido para a direita pelo número de bits especificado pelo operando direito. Ex: (A >> 1) é 1. |
7 | >>> (Right shift with Zero) Este operador é como o operador >>, exceto que os bits deslocados à esquerda são sempre zero. Ex: (A >>> 1) é 1. |
Operadores de atribuição
O Solidity oferece suporte aos seguintes operadores de atribuição -
Sr. Não. | Operador e descrição |
---|---|
1 | = (Simple Assignment ) Atribui valores do operando do lado direito para o operando do lado esquerdo Ex: C = A + B irá atribuir o valor de A + B em C |
2 | += (Add and Assignment) Ele adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo. Ex: C + = A é equivalente a C = C + A |
3 | −= (Subtract and Assignment) Ele subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo. Ex: C - = A é equivalente a C = C - A |
4 | *= (Multiply and Assignment) Ele multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo. Ex: C * = A é equivalente a C = C * A |
5 | /= (Divide and Assignment) Ele divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo. Ex: C / = A é equivalente a C = C / A |
6 | %= (Modules and Assignment) Leva o módulo usando dois operandos e atribui o resultado ao operando esquerdo. Ex: C% = A é equivalente a C = C% A |
Note - A mesma lógica se aplica aos operadores bit a bit, então eles se tornarão como << =, >> =, >> =, & =, | = e ^ =.
Operador condicional (? :)
O operador condicional primeiro avalia uma expressão para um valor verdadeiro ou falso e, em seguida, executa uma das duas instruções fornecidas, dependendo do resultado da avaliação.
Sr. Não. | Operador e descrição |
---|---|
1 | ? : (Conditional ) Se a condição for verdadeira? Então valor X: Caso contrário, valor Y |