[Dardo] 005-operador

[Dardo] 005-operador

1. Cuatro operaciones

Las cuatro operaciones aritméticas son el procesamiento lógico más básico entre cantidades, incluidas seis operaciones de suma, resta, multiplicación, división, cociente y resto. Los lados izquierdo y derecho de los cuatro operadores aritméticos son variables y la operación generará otra variable.

La siguiente es una prueba del uso de los seis cuatro operadores:

void foo1() {
    
    
  int a = 10;
  int b = 3;
  print(a + b); // 13
  print(a - b); // 7
  print(a * b); // 30
  print(a / b); // 3.3333333333333335
  print(a ~/ b); // 3
  print(a % b); // 1
}

Cabe señalar que las operaciones de punto flotante pueden tener el problema de pérdida de precisión. Esto se debe a las características del propio punto flotante, que no se pueden evitar en ningún lenguaje de programación. Para situaciones que requieren cálculos de alta precisión, como cálculos de moneda, puede utilizar el tipo decimal o bibliotecas de terceros para manejarlos.

Segundo, el operador condicional.

Como sugiere el nombre, los operadores condicionales se utilizan para verificar las condiciones, lo cual es consistente con nuestro pensamiento convencional. El operador condicional está flanqueado por variables que producen un valor booleano.

La siguiente es una prueba de uso de los seis operadores condicionales:

void foo1() {
    
    
  int a = 5;
  int b = 6;
  print(a > b); // false
  print(a < b); // true
  print(a == b); // false
  print(a != b); // true
  print(a >= b); // false
  print(a <= b); // true
}

Además, también existe el uso de operadores ternarios, como el siguiente getLargermétodo, que devuelve el valor mayor de los dos números. El valor de retorno se determina comparando las magnitudes de los dos números.

num getLarger(num a, num b) {
    
    
  bool result = a > b;
  if (result) {
    
    
    return a;
  } else {
    
    
    return b;
  }
}

El operador ternario es equivalente a una forma abreviada del código anterior y la expresión completa devuelve un objeto. La estructura de la expresión se divide en tres segmentos, utilizándose ?para separar la condición y el resultado. Si la condición es verdadera, devuelve :el valor antes; de lo contrario, devuelve :el valor después.

num getLarger(num a, num b) {
    
    
  num result = a > b ? a : b;
  return result;
}

3. Operadores lógicos

Hay tres tipos de operadores lógicos: Y, O y NO. &&y ||Concatena dos valores booleanos !seguidos de un valor booleano.

Las características de los operadores lógicos son las siguientes:

  • &&: El resultado es verdadero cuando los valores izquierdo y derecho son verdaderos. Similar a "y". Por ejemplo, compruebe si la edad es inferior a 14 años y la altura es inferior a 1,4 metros.
  • ||: El resultado es verdadero cuando al menos uno de los valores izquierdo y derecho es verdadero. Similar a "o". Por ejemplo, compruebe si la edad es inferior a 14 años o la altura es inferior a 1,4 metros.
  • !: Invierte el valor booleano. Similar al significado de "no". Por ejemplo, realice alguna acción cuando la condición no esté permitida.
void foo3() {
    
    
  int age = 10;
  bool free = age < 12 || check();
}

bool check() {
    
    
  print("call check");
  return true;
}

Los operadores lógicos tienen la característica de "rotura de circuito". Por ejemplo, con ||el operador, mientras la primera condición sea verdadera, las condiciones posteriores no se verifican. Esto se debe a que siempre que se cumpla una condición, ya se determina que el resultado es verdadero. De manera similar, &&lo mismo ocurre con el operador: siempre que el primer valor sea falso, los valores posteriores no se verificarán. Los operadores lógicos coinciden con la forma en que piensan los humanos.

4. Operadores bit a bit

En las computadoras, los datos se almacenan en forma binaria. Los operadores bit a bit realizan cálculos en bits binarios. En el desarrollo diario, no hay muchos escenarios de uso de operadores de bits, pero es necesario comprenderlos.

Tome intel tipo entero como ejemplo, ocupa 4 bytes en la memoria y cada byte (byte) está representado por 8 dígitos binarios (bit). Por ejemplo, la representación binaria de 65 y 11 en una computadora es:

十进制: 65
二进制: 0000 0000 0000 0000 0000 0000 0100 0001

十进制: 11
二进制: 0000 0000 0000 0000 0000 0000 0000 1011
  • &: El operador AND bit a bit, que opera en los bits de los valores izquierdo y derecho, y el resultado es 1 solo cuando los números superior e inferior del bit correspondiente son 1, y el resultado es 0 en otros casos.
  • |: El operador OR bit a bit, que opera en los bits de los valores izquierdo y derecho, siempre que uno de los números encima y debajo del bit correspondiente sea 1, el resultado es 1 y el resultado es 0 en otros casos.
  • ~: Operador de inversión bit a bit, invierte el número de cada dígito, es decir, escribe 1 cuando encuentra 0 y escribe 0 cuando encuentra 1.
  • ^: Operador XOR bit a bit, que opera en los bits de los valores izquierdo y derecho. Solo cuando los números encima y debajo de los bits correspondientes son diferentes, el resultado es 1, de lo contrario es 0.
  • <<Y >>: un operador de cambio con el valor a la izquierda y la cantidad a cambiar a la derecha. Desplazamiento a la izquierda significa mover el número binario hacia la izquierda un número específico de bits, descartar el bit alto y completar 0 si el bit bajo es insuficiente; el desplazamiento a la derecha es similar, pero en la dirección opuesta.

5. Operador de asignación

La sintaxis del operador de asignación es muy simple: el lado izquierdo es el nombre de la variable, el lado derecho es el valor, que se utiliza para asignar un valor a la variable.

También existe una forma abreviada ??=, que equivale a la asignación condicional. Por ejemplo, a ??= 20significa que cuando asea null, asigne bcomo valor predeterminado. Si ano null, aasígnalo a b.

Los operadores binarios en las cuatro operaciones aritméticas y operaciones de bits tienen operadores de asignación asociados, que son una forma abreviada.

Eso es todo para una introducción a todos los operadores de Dart. En general, estos operadores están en línea con nuestro pensamiento y no hay grandes problemas para entenderlos. Sin embargo, es necesario comprender gradualmente cómo utilizar estos símbolos de manera razonable para cumplir con los requisitos en el proceso de programación. Dominar la forma de escribir caracteres es sólo el primer paso, pero aún queda un largo camino por recorrer para convertirse en un excelente programador. A continuación, pasamos a la siguiente etapa: la programación orientada a objetos.

Supongo que te gusta

Origin blog.csdn.net/qq_29689343/article/details/131750952
Recomendado
Clasificación