1. 什么是 Flutter
Flutter 是用一套语言开发跨平台 app 的工具
- 框架:承载和编译 Dart 语言和 Widget 库
- SDK,用于将 Dart 代码便以为原生(iOS,Android)代码

macOS 在 Finder 中显示隐藏文件的快捷键
Shift + Command + .
终端查看所有文件(包含隐藏文件)
ls -la
VIM 命令
I: 插入
:wq 写入并退出
2. Dart
Dart 中一切皆对象,包括 Number
箭头函数:只有一条语句的函数可以用箭头代替
void main() => print("hello world")
int sum(int a, int b) => a + b
函数可选参数:用中括号括起来的参数在调用时可以不输入
void printCity(String c1, [String c2, String c3]) { }
函数参数标签,用花括号括起来的参数调用时需要传入名字
void printCountry(String c1, {String c2}) {}
// 调用时需要指定 c2
printCountry("CN", c2: "EN")
函数参数默认值
void printStudent(String s1, String s2 = "brook")
// 调用时 时 s2 可以不传值,会使用默认值
printStudent("Nancy")
异常捕获
try {
} on SomeTypeException {
} catch (exception, trace) {
} finally {
}
自定义 Exception
class MyException implements Exception {
}
void someFunc() {
throw new MyException()
}
类的声明和实例构造
class Person {
int age;
String name
void play() {}
void eat() {}
}
void main() {
var p1 = Person()
p1.age = 10;
p1.name = 'brook';
p1.play()
}
类实例的带参数构造
class Person {
// 声明属性
int age;
String name;
// 方式 1
Person(int age, String name) {
this.age = age;
this.name = name;
}
// 方式 2:可以简写为
Person(this.id, this.name);
// 方式 3:或者要求构造器需要指定参数名称,为参数带上花括号
Person({this.id, this.name});
}
void main() {
var p1 = Person(10, "brook")
}
自定义类实例构造器
Person.CustomConstructer(int age, String firstName, String lastName) {
this.age = age;
this.name = firstName + lastName
}
void main() {
var p1 = Person.CustomConstructor(10, 'brook', 'xy')
}
类的属性 setter 和 getter
// 默认
s1.age = 5;
print(s1.age)
// 自定义
void set setAge(int num) {
this.age = num;
}
// 等价箭头函数
void set setAge(int num) => this.age = age;
// 注意不需要括号
int get getAge {
return this.age;
}
// 等价箭头函数
int getAget => this.age;
// 使用自定义
s1.setAge = 5;
print(s1.getAget)
类的继承,单继承,将获得父类的属性和方法
class Student extends Person {
}
父类属性和方法的重写
// 属性可重写默认值
// sdudent
int age = 7;
// 方法直接重写,可以在方法上加上 @override
// sdudent
void eat() {
print("student eat")
}
@override
void play() {
print("student play")
}
网友评论