Directorio de artículos
- Explicación detallada de la sintaxis de Dart
-
- 1. Método de entrada
- 2. Variables de dardo
- 3. Reglas de nomenclatura de dardos
- 4. Constantes de dardo
- 5. Tipos de datos
- 6. Operadores
- 7. Declaración de bucle
- 8. Funciones
- 9. Clases y Objetos
- 10. Manejo de excepciones
- 11. Operación de archivos
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
, final
y . const
Entre ellos, var
se puede usar para declarar variables de cualquier tipo final
y const
se puede usar para declarar variables constantes, la diferencia es que const
el valor de la expresión se ha determinado en tiempo de compilación y final
se 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 final
o . const
La 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: true
y 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 is
palabras 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-else
declaraciones, switch-case
declaraciones, 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 as
y is
para 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
, while
y do-while
tres 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 break
y continue
pueden 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, static
las 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-catch
las 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:io
bibliotecas 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);
}