-
RainNight
2021-06-12
Dart语言
1519°
Dart基础语言 — 函数 Function
---
## 函数定义
```dart
int add(int x) {
return x + 1;
}
调用
add(1);
```
## 可选参数
```dart
int add(int x, [int y, int z]) {
if (y == null) {
y = 1;
}
if (z == null) {
z = 1;
}
return x + y + z;
}
调用
int(1, 2);
```
## 可选参数 默认值
```dart
-
RainNight
2021-06-12
Dart语言
1490°
Dart基础语言 — symbol、enum、comments
---
### 符号 Symbol
Dart语言的标识符,在反射中用的很普及,特别是很多发布包都是混淆后的。
```dart
import 'dart:mirrors';
Symbol libraryName = new Symbol('dart.core');
MirrorSystem mirrorSystem = currentMirrorSystem();
LibraryMirror libMirror = mirrorSys
-
RainNight
2021-06-12
Dart语言
1434°
## Dart基础语言 — Runes
### Runes
Runes 对象是一个 32位 字符对象,用来表示一个字。
这样设计也是考虑兼容 UTF-16 四个字节的情况。
### length 和 runes.length 比较
```dart
String a = '';
print(a.length);
print(a.runes.length);
>> 输出
2 // 标识占 2 个 16 位字符
1 // 表示占 1 个 32 位字符
```
> runes 是一个 32 位字符对象
-
RainNight
2021-06-12
Dart语言
1493°
Dart基础语言 — Set
---
Set 是一个元素唯一的有序队列
### 松散
```dart
// var a = new Set();
// a.add('java');
// a.add('php');
// a.add('python');
// a.add('java');
// a.add('sql');
// a.add('swift');
// a.add('dart');
```
### 强类型
```dart
// var b = new Set
();
// b.ad
-
RainNight
2021-06-12
Dart语言
1505°
Dart基础语言 — Map
key value 形式的集合
```dart
var a = {'name': 'ducafecat', 'web': 'www.ducafecat.tech'};
```
### 松散
```dart
var a = new Map();
a['name'] = 'ducafecat';
a['web'] = 'www.ducafecat.tech';
a[0] = 'abc';
```
### 强类型
```dart
var b = new Map
();
b
-
RainNight
2021-06-12
Dart语言
1353°
Dart基础语言 — 列表
---
List 是一个有序列表
```dart
var l = [1, 2, 3];
print(l);
```
### 自动
```dart
List
l = new List();
l
..add(1)
..add(2)
..add(3);
print(l);
```
### 定长
```dart
List
l = new List(3);
// print(l[0]);
l[0] = 1;
l[1] = 2;
l[2] = 3;
print(l);
```
#
-
RainNight
2021-06-12
Dart语言
1567°
Dart基础语言 — 日期时间
---
### 声明
```dart
var now = new DateTime.now();
print(now);
var d = new DateTime(2018, 10, 10, 9, 30);
print(d);
```
### 创建时间 UTC
```dart
var d = new DateTime.utc(2018, 10, 10, 9, 30);
print(d);
```
### 解析时间 IOS 8601
```dart
var d1 =
-
RainNight
2021-06-12
Dart语言
1471°
Dart基础语言 — 字符串
---
### 单引号或者双引号
```dart
String a = 'dart';
String b = "dart";
```
### 字符串模板
```dart
var a = 123;
String b = 'dart : ${a}';
```
### 字符串连接
```dart
var a = 'hello' + ' ' + 'ducafecat';
var a = 'hello'' ''ducafecat';
var a = 'hello'
' '
'
-
RainNight
2021-06-12
Dart语言
1523°
Dart基础语言 — 布尔
----
### 声明
为了代表布尔值,Dart 有一个名字为 bool 的类型。 只有两个对象是布尔类型的:true 和 false 所创建的对象, 这两个对象也都是编译时常量。
#### bool
```dart
bool a;
print(a);
```
只有 true 对象才被认为是 true。 所有其他的值都是 flase。
```dart
String name = 'dart';
if(name) {
print('this is name');
}
`
-
RainNight
2021-06-12
Dart语言
1320°
Dart基础语言学习—数值
---
### 数值
### 数值类型
#### int
整数值,其取值通常位于 -253 和 253 之间。
#### double
64-bit (双精度) 浮点数,符合 IEEE 754 标准。
#### num
int 和 double 都是 num 的子类。
### 数值表示法 十进制、十六进制
```dart
int a = 1001;
int b = 0xABC;
print([a, b]);
```
### 科学计数法
```dart
num a =
-
RainNight
2021-06-12
Dart语言
1290°
## Dart基础语言学习—常量
---
### 类型声明可以省略
```dart
final String a = 'final-string-dart';
final a = 'final-a-dart'
const String a = 'const-string-a';
const a = 'const-a';
```
### 初始后不能再赋值
```dart
final a = 'final-a';
a = 'abc';
const a = 'const-a';
a = 'abc';
-
RainNight
2021-06-12
Dart语言
1339°
## Dart基础语言学习 —变量的两种类型
----
### 弱类型
#### var
如果没有初始值,可以变成任何类型
```dart
var a;
a = 'dart-var';
a = 123;
a = true;
a = {'key': 'val123'};
a = ['abc'];
```
#### Object
动态任意类型,编译阶段检查类型
```dart
Object a = 'dart-Object';
a = 123;
a = [2222];
```
#### dynami