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 允许开发者以一种直观和易于管理的方式编写异步代码,从而提高应用程序的性能和响应性。
全部评论