我会按照初级、中级和高级依次介绍Dart语言的各种语法,并附上代码示例。
初级
1. 变量声明与赋值
var name = 'Tom'; // 变量
String age = '18'; // 带类型的变量声明
final PI=3.14159; // 常量
2. 控制流语句
int score = 70;
if (score >= 90) {
print('优秀');
} else if (score >= 60) {
print('及格');
} else {
print('不及格');
}
for (int i = 0; i < 5; i++) {
print(i);
}
while (score <= 100) {
score++;
}
3. 函数定义和调用
// 定义函数
int add(int a, int b) {
return a + b;
}
// 调用函数
int result = add(2, 3);
print(result); // 输出 5
4. 类的定义和实例化
class Person {
String name;
int age;
Person(this.name, this.age);
void sayHi() {
print('Hi, my name is $name, I am $age years old.');
}
}
// 实例化对象并调用方法
Person person = Person('Tom', 18);
person.sayHi(); // 输出 Hi, my name is Tom, I am 18 years old.
中级
1. Dart的可选参数和命名参数
void printInfo(String name, {int age, String gender}) {
print('name: $name, age: $age, gender: $gender');
}
printInfo('Tom', age: 18, gender: 'male'); // 输出 name: Tom, age: 18, gender: male
2. Dart的闭包和匿名函数
Function makeAdder(int addBy) {
return (int i) => addBy + i;
}
var addTen = makeAdder(10);
print(addTen(2)); // 输出 12
3. Dart的泛型
class Box<T> {
T element;
void add(T element) {
this.element = element;
}
}
Box<int> box = Box();
box.add(1);
print(box.element); // 输出 1
4. Dart的枚举类型
enum Color { red, green, blue }
Color color = Color.green;
print(color.index); // 输出 1
高级
1. Dart的异步编程
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 2));
return 'Hello, world!';
}
void main() async {
print('Start fetching data...');
String data = await fetchData();
print('Data: $data');
}
2. Dart的元编程(反射)
import 'dart:mirrors';
class Person {
String name;
int age;
Person(this.name, this.age);
void sayHi() {
print('Hi, my name is $name, I am $age years old.');
}
}
void main() {
Person person = Person('Tom', 18);
InstanceMirror mirror = reflect(person);
mirror.setField(Symbol('age'), reflect(20));
mirror.invoke(Symbol('sayHi'), []);
}
3. Dart的扩展方法
extension StringExtension on String {
String capitalize() {
return '${this[0].toUpperCase()}${this.substring(1)}';
}
}
String name = 'tom';
print(name.capitalize()); // 输出 Tom
4. Dart的元素级别操作
List<int> numbers = [1, 2, 3, 4, 5];
List<int> squaredNumbers = numbers.map((number) => number * number).toList();
int sum = numbers.reduce((value, element) => value + element);
print(squaredNumbers); // 输出 [1, 4, 9, 16, 25]
print(sum); // 输出 15
以上是Dart语言的初级、中级和高级语法的介绍,希望对你有所帮助。