Dart入门
2019-05-07 本文已影响33人
wl1217
阅读者你好!😊如果您是编程高手,请误笑我的无知。
由于本人是一个编程界菜鸟,希望通过写博客的方式激励自己不断的学习
学无止尽,嘿嘿!😊我会继续加油的!
初识Dart
-
Dart没有public、protected、private,它的私有特性通过在变量、函数前面加下划线(_)如
_name
-
支持anync/await异步处理
-
常用Dart开发库
Dart常用开发库.png
变量与基础数据类型
变量
- var 关键字声明,var name;
任何类型变量没有初始化都为null
-
常量和固定值
-
final 值只能被设定一次
-
const 编译时的常量,const 参与四则运算,会自动获得一个const值
-
基本数据类型
-
Number(num)
-
int
-
double
ads、ceil、floor常用方法
-
-
String
- ‘’、“”、‘’‘都可以
var name = "hello"; var name1 = 'hello';
-
Boolean(bool)
dart是强bool类型检查的,值必须是true、false才被认为是true、false -
List
类似Javascript的Array对象var l = [1,2,3,4,5]; print(l.length)
-
Map
key、valuevar map = { 'name': 'adwd' } // 通过构造函数 var map1 = new Map(); map1['name'] = 'adasd'
函数
函数属于对象(Function)
- 普通函数
bool equal(String a, String b){
return a == b;
}
- 可选参数([]表示可选参数)
void sayHi(String name, int age, [String xxx])
- 参数默认值(使用=号)
void test(String name, int age = 30){}
- 函数返回值
所有函数都会有返回值,没有返回值则返回null,没有返回值的函数、系统会在最后自动添加隐式return语句
运算符
dart运算符.png类型检测符
- as 类型转换
(user as User).name = 'Flutter';
-
is 判断类型
-
is!
赋值操作符
-
= 等于号
-
??= 表示,当为null时赋值,不为null时,不赋值
b ??= '哈哈哈'
逻辑运算符
-
&&
-
||
-
!expr
位运算符
-
&
-
|
-
^
-
~expr:一元位补码
-
<<
-
>>
条件表达式
-
expr ? a : b
-
expr1 ?? expr2 表示:expr1 为非空,返回本身,否则返回expr2
级联操作(..)
-
..
可以对同一个对象执行一系列操作(类似于Java中的..)
querySelect('#sd')
..text = '确定'
..classes.add('MyClass')
..onClick.listen((e) => window.alert('确定'))
流程控制语句
-
if-else
-
for
-
while、do-while
-
breack、continue
-
switch-case
-
assert
-
try-catch、throw
面向对象
一个类可以继承多个类,但是所以的都继承至Object
-
创建一个类
class User{ String name, int age }
-
构造函数
- 常规构造函数
class User{ String name; int age; //User(String name , int age){ // this.name = name; // this.age = age; //} // 简化版 User(this.name, this.age); }
- 命名的构造函数
class User{ String name; int age; User(this.name, this.age); User.fromJson(Map json){ name = json['name']; age = json['age']; } }
- 构造函数初始化列表
除了调用父类的构造函数,也可以通过初始化列表在子类的构造函数运行前初始化实例的成员变量值
class User{ final String name; final int age; User(name,age) : name = name, age = age; }
-
使用new关键字实例化
var user = new User('ad',21);