Detalles de uso de dardos

1. Determine si las dos cadenas son iguales usando el signo ==

        // Determine si dos cadenas son iguales
        bool igual (String str1, String str2) {
          return str1 == str2;
        }

2. Parámetros opcionales

        // Hay un lugar especial en este método [String from] Este campo no se puede pasar, use $ en la cadena para obtener los parámetros en el alcance
        String getUserInfo (String name, String sex, [String from]) {
          var info = 'El género de $ name es $ sex';
          if (from! = null) {
            info = '$ info from $ from';
          }
          return info;
        }
        void test () {
          print (getUserInfo ('小王', 'Hombre'));
        }

También puede darle a este parámetro opcional un valor predeterminado

        // Use el signo igual (=) para establecer el parámetro de palabra de posición silenciosa para que no sea nulo cuando no se pasa.
        String getUserInfo (String name, String sex, [String from = 'China']) {
          var info = '$ name of gender Sí $ sex ';
          if (from! = Null) {
            info =' $           infofrom $ from ';
          }
          return info;
        }
        void test () {
print (getUserInfo (' 小王 ',' 男 '));
        }

3. Trenzate

        var a, b;
        a = 0;
        b = ++ a; // Incremento antes de que a obtenga su valor una
        aserción (a == b); // 1 == 1


        a = 0;
        b = a ++; // Incremento después de obtener un valor, una
        aserción (a! = b); // 1! = 0


        a = 0;
        b = --a; // decremento antes de que b obtenga su valor una
        afirmación (a == b); // - 1 == -1


        a = 0;
        b = a--; // decremento después de que b obtiene el valor a
        aserción (a! = b); // - 1! = 0

4. como, es y es! Los operadores son muy convenientes para verificar tipos en tiempo de ejecución

// El uso es directamente para comparar

        if (user is User) {
          // Tipo de detección
          user.name = 'Flutter';
        }

// Usar como directamente para forzar la conversión
        (usuario como usuario) .name = 'Flutter';

5. Operador de asignación

        // Asignar valor a a
        = valor;
        // Si b está vacío, asignar valor a b; de lo contrario, b permanece sin cambios
        b ?? = valor;

6. Expresión condicional Si la condición es verdadera, devuelve expr1, de lo contrario devuelve expr2:

condición? expr1: expr2

7. Operación en cascada

// El símbolo ".." representa querySelector ('# btnOK).

        querySelector ('# btnOK) // Obtenga un objeto de botón con id btnOK:
          text =' OK '// miembros que lo usan:
          classes.add (' ButtonOKStyle ')
          ..onClick.listen ((e) => window.alert ('OK'));

8.para bucle

// Este tipo de bucle no puede obtener el subíndice de matriz, solo el valor del subíndice correspondiente v

        var arr = [0, 1, 2, 3, 4, 5, 6];
          para (var v in arr) {
            print (v);
          }

9.assert Si el juicio de aserción es verdadero, entonces continúe ejecutando la siguiente declaración; de lo contrario, arrojará una excepción de error de aserción AssertionError

        // Asegúrese de que el valor de la variable no sea
        aserción nula (text! = Null);

10. Object get and set pasará por defecto al establecimiento sin establecer

        clase Usuario {
          Nombre de cadena; // nombre miembro variable
          int edad; // edad miembro variable
        }
        main () {
          var usuario = nuevo Usuario ();
          usuario.nombre = '张三'; // equivalente al uso del configurador de nombre Método
          user.age = 20;


        }

11. Operación de sobrecarga

        // define una clase de
        clase vectorial Vector {
          final int x;
          final int y;
          const Vector (this.x, this.y);

          // Sobrecarga más signo + (a + b)
          Operador de vector + (Vector v) {
            retorno Vector (x + vx, y + vy);
          }
          // Sobrecarga menos signo- (a-b)
          Operador de vector- (Vector v) {
            return Vector (x-vx, y-vy);
          }
        }
        main () {
          // instanciar dos vectores
          final v = Vector (2, 3);
          final w = Vector (2, 2);
          final r1 = v + w;

// significa x = 2 + 2; y = 3 + 2
          print ('r1.x =' + r1.x.toString () + 'r1.y =' + r1.y.toString ());
          final r2 = v-w;

// Significa x = 2-2; y = 3-2
          print ('r2.x =' + r2.x.toString () + 'r2.y =' + r2.y.toString ());
        }

12. Tipos enumerados

        enum Color {
          rojo,
          verde,
          azul
        }
        // Defina una variable de color, el valor predeterminado es azul
        Color aColor = Color.blue;
        switch (aColor) {
          case Color.red:
            print ('red');
            break;
          case Color. green:
            print ('green');
            break;
          default: // default color
            print (aColor); //'Color.blue '
        }

13 Mezclas

        clase S {
          a () {print ("Sa");}
        }
        clase A {
          a () {print ("Aa");}
          b () {print ("Ab");}
        }

        clase T = A con S;
        main (List <String> args) {
          T t = T ();
          ejército de reserva();
          tuberculosis();
        }

Como la salida es AwithB, use B primero

Sa

Ab

 

20 artículos originales publicados · Me gusta2 · Visitas 10,000+

Supongo que te gusta

Origin blog.csdn.net/qq_28335347/article/details/105577910
Recomendado
Clasificación