dart编程语言基本语法

139 2024-10-28 09:54

kimi:

Dart 是一种面向对象的、类定义的、单继承的语言,它被设计为简洁、易于学习,并且能够与现代编程语言的开发者们无缝协作。以下是 Dart 编程语言的一些基本语法:

1. **变量声明**:
   ```dart
   var name = 'Kimi';
   String greeting = 'Hello';
   int age = 30;
   double price = 19.99;
   bool isAvailable = true;
   ```

2. **函数**:
   ```dart
   void main() {
     print('Hello, World!');
   }

   // 带参数的函数
   void greet(String name) {
     print('Hello, $name!');
   }
   ```

3. **条件语句**:
   ```dart
   int score = 75;
   if (score > 70) {
     print('Pass');
   } else {
     print('Fail');
   }

   // 条件表达式
   String result = score > 70 ? 'Pass' : 'Fail';
   ```

4. **循环**:
   ```dart
   // for 循环
   for (int i = 0; i < 5; i++) {
     print('Number: $i');
   }

   // while 循环
   int j = 0;
   while (j < 5) {
     print('Number: $j');
     j++;
   }

   // do-while 循环
   do {
     print('Number: $j');
     j++;
   } while (j < 5);
   ```

5. **类和对象**:
   ```dart
   class Person {
     String name;
     int age;

     Person(this.name, this.age);

     void greet() {
       print('Hello, my name is $name and I am $age years old.');
     }
   }

   void main() {
     var person = Person('Kimi', 30);
     person.greet();
   }
   ```

6. **继承**:
   ```dart
   class Citizen {
     String name;

     Citizen(this.name);

     void display() {
       print('Citizen Name: $name');
     }
   }

   class Student extends Citizen {
     String school;

     Student(String name, this.school) : super(name);

     void displaySchool() {
       print('School: $school');
     }
   }

   void main() {
     var student = Student('Kimi', 'Moonshot High School');
     student.display();
     student.displaySchool();
   }
   ```

7. **接口和抽象类**:
   ```dart
   abstract class Animal {
     void makeSound();
   }

   class Dog implements Animal {
     void makeSound() {
       print('Woof woof!');
     }
   }

   void main() {
     var dog = Dog();
     dog.makeSound();
   }
   ```

8. **异常处理**:
   ```dart
   try {
     int number = int.parse('one');
   } onFormatException {
     print('That was not a number.');
   }
   ```

9. **异步编程**:
   ```dart
   Future<void> main() async {
     var result = await someAsyncOperation();
     print(result);
   }

   Future<String> someAsyncOperation() async {
     await Future.delayed(Duration(seconds: 1));
     return 'Hello, World!';
   }
   ```

10. **集合**:
    ```dart
    List<String> names = ['Kimi', 'Alice', 'Bob'];
    Set<int> numbers = {1, 2, 3};
    Map<String, dynamic> person = {
      'name': 'Kimi',
      'age': 30,
      'isStudent': false
    };
    ```

这些是 Dart 语言的一些基础语法,Dart 还支持许多其他高级特性,如泛型、扩展方法、空安全等。要深入了解 Dart,可以访问 [Dart 官方文档](https://dart.dev/guides)。

 

异步编程讲解

异步编程是现代编程语言中处理并发任务的重要手段,Dart 语言通过 `Future` 和 `Stream` 对象提供了对异步编程的支持。以下是 Dart 异步编程的一些关键概念和使用方式:

1. **Future 对象**:Future 表示一个将来某个时间点会完成的异步计算。它可以用来处理例如网络请求、文件读写等需要等待的操作。一个 Future 可以是未完成的(uncompleted)或已完成的(completed),如果操作成功,Future 会完成并返回一个值;如果操作失败,则完成并带有错误 。

2. **async 和 await 关键字**:Dart 提供了 `async` 和 `await` 关键字来简化异步代码的编写。`async` 关键字用来声明一个异步函数,而 `await` 关键字用来等待一个 Future 完成并获取其结果。使用 `await` 时,必须在 `async` 函数内部 。

3. **异步函数**:使用 `async` 标记的函数会返回一个 Future 对象。即使函数体内部没有显式返回值,也会返回 `Future<void>`。这使得异步函数的行为类似于同步函数,但能够暂停执行并在未来某个时间点恢复 。

4. **错误处理**:在使用异步函数时,可以使用 `try-catch` 语句来捕获和处理错误。如果异步操作失败,Future 会完成并带有错误,可以在 `catch` 块中处理这些错误 。

5. **等待多个 Future**:可以使用 `Future.wait()` 方法来并发执行多个异步任务,并在所有任务完成后统一处理结果。如果任何一个任务抛出异常,`Future.wait()` 也会抛出该异常 。

6. **Stream 对象**:Stream 是用于处理一系列异步事件的序列,类似于异步的 Iterable。可以使用 `await for` 循环来迭代 Stream 中的事件,类似于同步代码中的 for 循环 。

7. **异步 for 循环**:使用 `await for` 可以异步迭代 Stream 对象发射的值。这允许你编写看起来像同步代码的异步循环,循环会在 Stream 关闭时停止 。

8. **lints**:为了捕获使用异步和 Future 时的常见错误,可以启用 `discarded_futures` 和 `unawaited_futures` 这两个 lints 。

通过这些工具和概念,Dart 允许开发者以一种直观和易于管理的方式编写异步代码,从而提高应用程序的性能和响应性。

 

 

全部评论

·