携手创作,一起生长!这是我参加「日新方案 8 月更文挑战」的第1天,点击检查活动详情
Dart 这个知识点,会写成一个系列的文章。咱们以数据类型开始~
Number 数字类型
- Number 数字类型,包含
- int 整型
- double 浮点型
int
和 double
都是 num 的子类。
int a = 1;
print(a); // 1
double b = 2.0;
print(b); // 2.0
num c = -3;
print(c); // -3
String 字符串类型
Dart
支撑运用双引号和单引号来创立字符串。运用 String
来界说变量,标明该变量是字符串类型。Dart
中字符串类型的运用跟 JavaScript
中字符串的运用相似:
字符串拼接
运用 +
符号进行拼接
String s1 = 'Hello ';
String s2 = 'World!';
String s3 = s1 + s2;
print(s3); // Hello World!
转义字符处理
运用 \
来标明
String s1 = 'I\'m Jimmy.'
print(s1); // I'm Jimmy.
String s2 = "榜首行文本\n第二行文本";
print(s2);
// 榜首行文本
// 第二行文本
多行文本
咱们能够运用 '''
或许 """
来标明,比如上面的 "榜首行文本\n第二行文本"
咱们能够这样写:
'''
榜首行文本
第二行文本
'''
// 或许
"""
榜首行文本
第二行文本
"""
字符串插值
在字符串中,咱们运用 ${表达式}
的形式运用表达式
String s1 = 'my name is Jimmy.';
print('Hello, ' + s1); // Hello, my name is Jimmy.
print('Hello, ${ s1 }'); // Hello, my name is Jimmy.
print('Hello, ${ s1.substring(10, 1) }!'); // Hello, Jimmy.
Boolean 布尔类型
咱们先来看下下面的代码:
String str = '';
if(str) {
print('true');
} else {
print('flase');
}
那上面的代码会打印什么呢?true
或许 false
呢?
上面的代码会报错:
Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
if(str) {
^
Error: Compilation failed.
在 if(str)
这儿,编译失利,由于在 dart
言语里边,变量值必须是 true
或许 false
才行。改写下上面的代码:if(str) => if(str.isEmpty)
即可经过编译。
所以读者不要把 JavaScript
判别布尔值的方式带过来 Dart
这儿编写:
JavaScript (false) | Dart (true) | |
---|---|---|
var variable = 0 | variable (false) | variable <= 0 (true) |
var variable = null | variable (false) | variable == null (true) |
var variable = ” | variable (false) | variable.isEmpty (true) |
var variable = NaN | variable (false) | variable.isNaN (true) |
var variable = true | variable (true) | variable (true) |
所以,你直接界说布尔类型变量的时分,正确的姿势应该是这样:
bool flag = true
// 或许
bool flag = false
list 数组类型
这儿的 list
我理解成数组,由于这跟 JavaScript
里边的 array
很类似~
List arr = ['Hello ', 'World!'];
// 数组的长度
print(arr.length); // 2
// 数组的取值
print(arr[0]); // Hello
// 数组的赋值
arr[1] = 'Jimmy. ';
print(arr.join('')); // Hello Jimmy.
// 扩展运算符
var list = ["I\'m ", 'come ', 'from ', 'China.'];
print([...arr, ...?list].join('')); // Hello Jimmy. I'm come from China.
...?
为空感知扩展操作符,假如扩展操作符右边的变量值可能是null
, 咱们能够运用...?
来避免产生反常
Set 调集类型
调集有三个特性;
- 无序性:每个元素的地位都是相同的,元素之间无序。
- 互异性:每个元素只能呈现一次。
-
确定性:给定一个调集,任何一个元素,该元素
或许归于或许不归于
该调集,二者必居其一,不允许不置可否的情况呈现。
运用如下:
// 界说调集
Set set = new Set();
// 调集的巨细
print(set.length); // 0
// 增加元素
set.add('Hello ');
set.add('World!');
print(set); // {Hello , World!}
// 判别调集中是否存在指定元素
print(set.contains('Jimmy')); // false
// 一次增加多个列表元素
set.addAll(["I\'m ", 'come ', 'from ', 'China.']);
print(set); // {Hello , World!, I'm , come , from , China.}
// 移除指定的元素
set.remove('World!');
print(set); // {Hello , I'm , come , from , China.}
Map 目标类型
把 Map
理解成目标,是由于这跟 JavaScript
中的目标很类似。
// 界说目标
Map map = new Map();
// 目标的巨细
print(map.length); // 0
// 增加目标特点
map['name'] = 'Jimmy';
map['country'] = 'China';
print(map); // {name: Jimmy, country: China}
// 读取特点值
print(map['name']); // Jimmy
// 读取目标的 keys 值
print(map.keys); // (name, country)
// 读取对目标的 values 值
print(map.values); // (Jimmy, China)
Runes 和 Symbols
在 Dart
中,runes公开了字符串的 Unicode 码位。Symbol标明 Dart 中声明的操作符或许标识符。
由于这两个运用较少,这儿就不进行介绍。后边需求运用到再弥补…
弥补
不知道读者有没有留意到,我界说变量的时分有时分也用到了 var
,那么它终究是什么呢?
var
是 Dart
言语运用的关键字,是 variable
的简写,标明这是一个泛型调用(generic invocations)。
var name = 'Jimmy'; // 泛型调用,标明变量类型不知道是啥
String name = 'Jimmy'; // 类型注释,标明我一定是 String 类型
当然,还有 const
和 final
的运用。
假如读者觉得文章还能够,不防一键三连:重视➕点赞➕收藏