[Flutter笔记] Dart 入门

1. 什么是 Flutter

Flutter 是用一套语言开发跨平台 app 的工具

  • 框架:承载和编译 Dart 语言和 Widget 库
  • SDK,用于将 Dart 代码便以为原生(iOS,Android)代码
image.png

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")
} 

你可能感兴趣的:([Flutter笔记] Dart 入门)