常用数据类型
String
var 定义字符串
dart
void main() {
var str1 = 'my name is ronhai';
var str2 = "my name is rh";
print(str1);
print(str2);
}
String 定义字符串
dart
void main() {
String str1 = 'my name is ronhai';
String str2 = "my name is rh";
print(str1);
print(str2);
}
写多行的字符串‘’‘,“”“
dart
void main() {
String str = '''my name is ronhai,
我的中文名为隆海
''';
print(str);
}
字符串拼接
dart
void main() {
String str1 = '''my name is ronhai, ''';
String str2 = '中文名:隆海';
print("${str1}${str2}");
print(str1 + str2);
}
Number
INT 整型
只能是整型
dart
void main() {
int a = 123;
print(a);
}
DOUBLE 浮点型
double 既可以整型也可以是浮点型
dart
void main() {
double b = 23.13;
b = 23;
print(b);
}
Boolean
只有两个值:true 和 false,跟 swift 类似
bash
void main() {
bool flag = true;
print(flag);
flag = false;
print(flag);
}
List(数组)
数组、集合
常用属性
- length 长度
- reversed 翻转
- isEmpty 是否为空
- isNotEmpty 是否不为空
常用方法:
- add(value) 增加
- addAll([value]) 拼接数组
- indexOf(value) 查找 传入具体值 找到返回索引,没有返回-1
- remove(value) 删除 传入具体值
- removeAt(number) 删除 传入索引值
- fillRange(start,end,value) 修改
- insert(index,value) 指定位置插入
- insertAll(index,list) 指定位置插入 List
- toList() 其他类型转换成 List
- join() List 转换成字符串
- split() 字符串转化成 List
- forEach 循环
- map
- where 把满足条件的返回一个新的集合
- any 集合有一个满足条件的就返回 true
- every 每一个满足条件返回 true,否则 flase
定义集合
dart
void main() {
var lst1 = [1, 2, 3];
print(lst1);
var lst2 = [true, 'rh', 123];
print(lst2);
}
指定集合的类型
dart
void main() {
var l2 = <String>['rh', 'ronhai', '隆海'];
print(l2);
}
增加数据
dart
void main() {
var l4 = [];
print(l4);
print(l4.length);
l4.add(33);
print(l4);
var l5 = [3, 'rh', true];
l4.addAll(l5);
print(l4);
}
创建指定长度的集合
dart
void main() {
var l6 = List.filled(3, ""); //创建固定长度的集合1是长度,2是参数
print(l6);
}
不能修改集合长度
dart
# 不可以修改长度
void main() {
var l6 = List.filled(3, ""); //创建固定长度的集合1是长度,2是参数
print(l6);
l6.length=0;
}
# 可以修改长度
void main() {
var l1 = [11, 22, 33, 44];
l1.length = 2;
print(l1);
}
Maps(字典)
常用属性:
- length 长度
- reversed 翻转
- isEmpty 是否为空
- isNotEmpty 是否不为空
常用方法:
remove(key) 删除指定 key 的数据
addAll({...}) 合并映射 给映射内增加属性
containsValue 查看映射内的值 返回 true/false
forEach()
map() 用于修改集合的数据
dartvoid main(List<String> args) { Map p = {"name": "ronhai", "age": 23, "sex": '男'}; var ls1 = [1, 2, 3, 'true', 'rh']; var b = ls1.map((k) { return k; }); print(b.toList()); }
where() 把满足条件的返回一个新的集合
any() 集合有一个满足条件的就返回 true
every() 每一个满足条件返回 true,否则 flase
键名必需双引号。取值是["键名"]
第一种定义方式:
dart
void main() {
var person = {
"name": 'rh',
"age": 23,
};
print(person);
print(person['name']);
}
第二种定义方式:
dart
void main() {
var p = new Map();
p['name'] = '李四';
p['age'] = 23;
p['hobby'] = ['跑步', '音乐', '电影'];
print(p);
}
dart
void main(List<String> args) {
Map p = {"name": "ronhai", "age": 23, "sex": '男'};
print(p.keys.toList()); #[name, age, sex]
print(p.values.toList()); # [ronhai, 23, 男]
}
Set
dart
void main() {
var a = Set();
print(a);
a.add('111');
print(a);
a.add('rh');
print(a);
}
# {}
# {111}
# {111, rh}
空安全
Null safety 翻译成中文的意思是空安全。
null safety 可以帮助开发者避免一些日常开发中很难被发现的错误,并且额外的好处是可以改善性能。Flutter2.2.0 (2021 年 5 月 19 日发布)之后的版本都要求使用 null safety。
- ? 可空类型
- !类型断言
dart
void main() {
int a = 123;
a = null; //A value of type 'Null' can't be assigned to a variable of type 'int'.
String username = '隆海';
username =
null; //A value of type 'Null' can't be assigned to a variable of type 'String'.
}
可空类型
dart
void main() {
int? a = 123;
a = null;
String? username = '隆海';
username = null;
List<String>? list = ['rh', 'ronhai', 'ronhai.com'];
list = null;
}
类型断言
dart
void main() {
String? str = 'this is str';
// str = null;
print(str!.length);
}
//如果不为空输出长度,为空会抛出异常
late
关键字主要用于延迟初始化
dart
class Person {
late String name;
late int age;
void setName(String name, int age) {
this.name = name;
this.age = age;
}
String getName() {
return '${this.name}----${this.age}';
}
}
void main() {
var p = new Person();
p.setName('rh', 23);
print(p);
}
required
required 关键词,加了就是必传参数:
老版本@required 是注解
现在它已经作为内置修饰符。
主要用于允许根据需要标记任何命名参数(函数或类),使得它们不为空。因为可选参数中必须有个 require