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