[Desarrollo de Android - Explicación de la gramática de Dart]

Directorio de artículos

Explicación detallada de la sintaxis de Dart

1. Método de entrada

En Dart, el método de entrada de un programa es main()una función.

2. Variables de dardo

En Dart, las variables se pueden declarar usando las palabras clave var, finaly . constEntre ellos, varse puede usar para declarar variables de cualquier tipo finaly constse puede usar para declarar variables constantes, la diferencia es que constel valor de la expresión se ha determinado en tiempo de compilación y finalse puede inicializar en el momento de la declaración o en el constructor.

var name = "John";
final age = 30;
const PI = 3.14;

3. Reglas de nomenclatura de dardos

En Dart, los identificadores deben comenzar con una letra o un guión bajo y no pueden comenzar con un número; los identificadores no pueden contener espacios o caracteres especiales, como @, #, $, etc.; las letras en los identificadores distinguen entre mayúsculas y minúsculas. Los identificadores deben nombrarse en camelCase.

int myAge = 18;
String userName = "john";

4. Constantes de dardo

En Dart, las constantes se pueden declarar usando la palabra clave finalo . constLa diferencia entre constantes y variables es que, una vez inicializado, el valor de una constante no se puede cambiar, mientras que el valor de una variable se puede modificar.

final height = 1.75;
const PI = 3.14;

5. Tipos de datos

5.1 Tipos numéricos

Los tipos numéricos en Dart incluyen int(entero) y double(coma flotante).

int age = 18;
double height = 1.75;

5.1.3 Operadores

Los tipos numéricos en Dart admiten una variedad de operadores, que incluyen suma, resta, multiplicación, división y resto.

int a = 5;
int b = 2;
print(a + b); // 输出7
print(a - b); // 输出3
print(a * b); // 输出10
print(a / b); // 输出2.5
print(a % b); // 输出1

5.2 Tipo de cadena

Los tipos de cadena en Dart están entre comillas simples o dobles.

String hello = "Hello";
String world = 'world';

5.3 Tipo booleano

El tipo booleano en Dart tiene dos valores: truey false.

bool isGood = true;
bool isBad = false;

5.4 Tipo de colección de listas

El tipo de lista en Dart se puede usar para almacenar un conjunto ordenado de datos y se puede acceder a sus elementos a través de subíndices.

5.4.1 La primera forma de definir Lista

List<String> fruits = ["apple", "banana", "orange"];

5.4.2 La segunda forma de definir Lista

List<int> numbers = new List();
numbers.add(1);
numbers.add(2);
numbers.add(3);

5.4.3 Especificar el tipo de lista

List<dynamic> list = new List<dynamic>();
list.add("hello");
list.add(123);
list.add(true);

5.5 Tipos de mapas

El tipo de mapa en Dart se usa para almacenar pares clave-valor, donde la clave y el valor pueden ser de cualquier tipo.

5.5.1 El primer método de definición

Map<String, String> fruits = {
    
    
  "apple": "red",
  "banana": "yellow",
  "orange": "orange",
};

5.5.2 El segundo método de definición

Map<String, int> scores = new Map();
scores["John"] = 80;
scores["Mary"] = 90;

5.6 Tipo de juicio (es una palabra clave)

En Dart, puede usar ispalabras clave para determinar si un objeto pertenece a un tipo determinado.

String str = "Hello";
if (str is String) {
    
    
  print("str is a string");
}

6. Operadores

6.2 Operadores relacionales

Los operadores relacionales en Dart incluyen igual a ( ==), no igual a ( !=), mayor que ( ), menor que ( >), mayor o <igual a ( ) >=y menor o igual a ( <=).

6.3 Operadores lógicos

En Dart, puede usar !y &&tres ||símbolos para realizar operaciones lógicas.

6.3.1 Inversión (!)

bool isGood = false;
if(!isGood){
    
    
  print("isBad");
}

6.3.2 Operación Y (&&)

bool isGood = true;
bool isBig = true;
if(isGood && isBig){
    
    
  print("isGreat");
}

6.3.3 Operación O ( | | )

bool isGood = true;
bool isBig = false;
if(isGood || isBig){
    
    
  print("isGood or isBig");
}

6.4 Operación de asignación

Las operaciones de asignación en Dart incluyen asignación directa ( =), asignación después de que el juicio esté vacío ( ??=) y operadores de asignación compuesta ( +=, -=, *=, /=, %=, ~/=).

6.4.1 Asignación directa (=)

int a = 5;

6.4.2 Asignar después de que el juicio esté vacío (??=)

int a;
a ??= 5;
print(a); // 输出 5

6.4.3 Operadores de asignación compuestos (+=, -=, *=, /=, %=, ~/=)

int a = 5;
a += 3;
print(a); // 输出 8

6.5 Expresiones condicionales

En Dart, las expresiones condicionales se pueden implementar mediante if-elsedeclaraciones, switch-casedeclaraciones, operadores ternarios y ??operadores.

6.5.1 si no

int score = 80;
if (score >= 90) {
    
    
  print("Grade A");
} else if (score >= 80) {
    
    
  print("Grade B");
} else {
    
    
  print("Grade C");
}

6.5.2 caja del interruptor

int score = 80;
switch (score) {
    
    
  case 90:
    print("Grade A");
    break;
  case 80:
    print("Grade B");
    break;
  default:
    print("Grade C");
}

6.5.3 Operación trinocular ( ? : )

int score = 80;
String grade = score >= 90 ? "A" : "B";
print(grade); // 输出 B

6.5.4 El operador ??

int a;
int b = a ?? 5;
print(b); // 输出 5

6.6 Conversión de tipos

En Dart, puede usar asy ispara realizar la conversión de tipo.

String str = "123";
int num1 = int.parse(str); // 字符串转整数
double num2 = double.parse(str); // 字符串转浮点数
int a = 5;
String b = a.toString(); // 数字转字符串

7. Declaración de bucle

En Dart, puede usar las declaraciones for, whiley do-whiletres bucles para manejar tareas repetitivas.

7.1 para bucle

for (int i = 0; i < 10; i++) {
    
    
  print(i);
}

7.2 mientras 和 hacer mientras

int i = 0;
while (i < 10) {
    
    
  print(i);
  i++;
}

int j = 0;
do {
    
    
  print(j);
  j++;
} while (j < 10);

7.3 pausa 和 continuar

Dentro de un bucle, las palabras clave breaky continuepueden usarse para controlar el flujo del programa.

for (int i = 0; i < 10; i++) {
    
    
  if (i== 5)
  {
    
     break; // 中断循环 } 
  if (i % 2 == 0) {
    
    
  continue; // 跳过本次循环,进入下一次循环 
  }
  print(i); 
  }

8. Funciones

En Dart, una función es un bloque de código con un nombre y parámetros que se pueden llamar repetidamente.

8.1 Definición de funciones

int sum(int a, int b) {
    
    
  return a + b;
}

8.2 Parámetros de función

Los parámetros de función en Dart se pueden dividir en parámetros requeridos, parámetros posicionales opcionales y parámetros con nombre opcionales.

8.2.1 Parámetros requeridos

int sum(int a, int b) {
    
    
  return a + b;
}

sum(1, 2); // 输出 3

8.2.2 Parámetros posicionales opcionales

int sum(int a, [int b = 0, int c = 0]) {
    
    
  return a + b + c;
}

sum(1); // 输出 1
sum(1, 2); // 输出 3
sum(1, 2, 3); // 输出 6

8.2.3 Parámetros con nombre opcionales

int sum(int a, {
    
    int b = 0, int c = 0}) {
    
    
  return a + b + c;
}

sum(1); // 输出 1
sum(1, b: 2); // 输出 3
sum(1, b: 2, c: 3); // 输出 6

8.3 Funciones anónimas

En Dart, puede usar funciones anónimas para definir una función sin nombre.

var sum = (int a, int b) {
    
    
  return a + b;
};

print(sum(1, 2)); // 输出 3

9. Clases y Objetos

En Dart, todo es un objeto. Cada objeto es una instancia de una clase y todas las clases heredan de la clase Object.

9.1 Definición de clases

class Person {
    
    
  String name;
  int age;

  void sayHello() {
    
    
    print("Hello, my name is $name.");
  }
}

var person = new Person();
person.name = "Tom";
person.age = 20;
person.sayHello(); // 输出 Hello, my name is Tom.

9.2 Constructores

En Dart, un constructor es una función especial que se utiliza para crear e inicializar objetos de una clase.

9.2.1 Constructor por defecto

class Person {
    
    
  String name;
  int age;
  
  Person(this.name, this.age);
  
  void sayHello() {
    
    
    print("Hello, my name is $name, I'm $age years old.");
  }
}

var person = new Person("Tom", 20);
person.sayHello(); // 输出 Hello, my name is Tom, I'm 20 years old.

9.2.2 Constructores con nombre

class Person {
    
    
  String name;
  int age;
  
  Person(this.name, this.age);
  
  Person.fromMap(Map<String, dynamic> map) {
    
    
    name = map['name'];
    age = map['age'];
  }
  
  void sayHello() {
    
    
    print("Hello, my name is $name, I'm $age years old.");
  }
}

var person = new Person.fromMap({
    
    "name": "Tom", "age": 20});
person.sayHello(); // 输出 Hello, my name is Tom, I'm 20 years old.

9.3 Miembros estáticos

En Dart, staticlas palabras clave se pueden usar para definir miembros estáticos, se puede acceder a métodos estáticos y variables estáticas sin crear instancias de objetos.

class Person {
    
    
  String name;
  int age;
  static String hobby = "Dancing";

  Person(this.name, this.age);
  
  static void sayHello() {
    
    
    print("Hello, I love $hobby.");
  }
}

Person.sayHello(); // 输出 Hello, I love Dancing.

10. Manejo de excepciones

En Dart, try-catchlas excepciones se pueden capturar y manejar mediante declaraciones.

try {
    
    
  int result = 10 ~/ 0; // 抛出异常
} catch (e) {
    
    
  print("Exception: $e"); // 输出 Exception: IntegerDivisionByZeroException
} finally {
    
    
  print("Finally block."); // 输出 Finally block.
}

11. Operación de archivos

En Dart, puede usar dart:iobibliotecas para operaciones con archivos.

11.1 Lectura de archivos

import 'dart:io';

void main() async {
    
    
  var file = File('example.txt');
  var contents = await file.readAsString();
  print(contents);
}

11.2 Escribir en un archivo

import 'dart:io';

void main() async {
    
    
  var contents = 'Hello, world!';
  var file = File('example.txt');
  await file.writeAsString(contents);
}

Supongo que te gusta

Origin blog.csdn.net/muzillll/article/details/131223949
Recomendado
Clasificación