Flutter-Dart语言简介
Dart语言设计借鉴了Java和JavaScript,同时存在了两者的特性。
Dart变量声明
1 | |
表示名字是name的变量包含一个指向值为 bob 的字符串对象引用。
当前name的类型被推断为String,当然也可以通过直接指定变量类型,例如String name ='wxy';
内置类型
主要支持
数字、字符串、布尔、数组,集合等数据类型。
数字类型
1 | |
intdoublenumlong- …
字符串类型
1 | |
布尔类型
1 | |
列表类型
主要是
List和Set,其中List允许重复元素,Set不允许。
List使用[]表示
Set使用{}表示
1 | |
集合类型
主要是
Map,以键值对形式存储元素。
1 | |
整体的使用方式与Kotlin类似,熟悉Kotlin的话可以很快上手Dart的使用。
变量声明
var
可以接收任何类型的变量,但是一旦被赋值,类型就会确定且无法改变。
1 | |
dynamic/Object
dynamic表示动态类型,在编译期间不会进行任何的类型检查,而是在运行时进行检查
1 | |
Object是所有对象的基类,可以赋值任意对象。而且也支持在后期修改值。
1 | |
dynamic和Object主要区别在于:
dynamic在声明的时候可以调用所有可能支持的方法,例如length之类
Object在声明的时候只能调用Object的方法,其他方法都无法调用
1 | |
使用dynamic需要注意 可能引入的运行时错误。
final/const
主要做常量声明。被修饰的变量无法被修改。
const用于表示编译时常量
final在第一次使用时被初始化。//需要到运行时才能确定值
1 | |
Dart逻辑语句与操作符
逻辑语句
if elseswitchwhile
操作符
..级联操作符对类的内部成员进行链式调用
1
2
3
4Event event = Event();
event
..id = 1
..type = ""
??赋值操作符1
2
3a ?? "123" //a为空,返回123
a ??= "123" //a为空,值为123
a ~/ 2 //a整除2重载操作符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15class A {
int a, b;
A(this.a, this.b);
A operator +(A c) => A(a + c.a, b + c.b);
}
//使用示例
void main(){
var aa = A(1, 3);
var bb = A(2, 3);
print(aa + bb); //3,6
}支持重载的操作符如下:
| | | | |
| —- | —- | —- | —- |
| > | / | ^ | []= |
| <= | ~/ | & | ~ |
| >= | ** | << | == |
| - | % | >> | |
| < | + | | | [] |
Dart函数
函数也是对象
函数可以赋值给变量或作为参数传递给其他函数——函数式编程。
函数声明
1 | |
作为变量/参数
1 | |
可选位置/命名参数
1 | |
不能同时使用可选位置参数和可选命名参数。
Dart类、接口和继承
Dart线程操作
参考链接
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!