常用数据类型
import 'package:flutter/material.dart';
//常用数据类型
class DataType extends StatefulWidget {
@override
State<DataType> createState() => _DataTypeState();
}
class _DataTypeState extends State<DataType> {
@override
Widget build(BuildContext context) {
_numType();
_stringType();
_listType();
return Container(
child: Text('常用文字类型,请查看控制台输出'),
);
}
//数字类型
void _numType() {
num num1 = -1.0; //数字类型的父类
num num2 = 2; //是数字类型的父类
int int1 = 3; //只能是整数
double d1 = 1.68; //双精度
print("num:$num1 num:$num2 int:$int1 d1:$d1");
}
//字符串
_stringType() {
String str1 = '字符串', str2 = "双引号";
String str3 = 'str:$str1 str2:$str2'; //字符串拼接
String str4 = 'str1:' + str1 + 'str2:' + str2;
String str5 = '常用数据类型,控制台输出';
print(str3);
print(str4);
//字符串常用方法
print(str5.substring(1, 5)); //数据截取
print(str5.indexOf('类型')); //获取指定字符串的位置
print(str5.startsWith('常')); //
print(str5.startsWith('//', 6)); //判断从索引 6 位置处开始,字符串是否以字符 // 开头
print(str5.endsWith("出"));
//第一个参数 from 表示字符串中被替换掉的字符,第二个参数 replace 表示替换为什么字符。
print(str5.replaceAll("常用", "替换"));
print(str5.replaceFirst('数据', '11')); 01 只替换掉第一个符合条件的字符
}
//布尔类型,Dart 是强bool 类型检查,只有bool 类型的值 是true 才被认为是true
_boolType() {
bool success = true, fail = false;
print(success);
print(fail);
print(success || fail); //true
print(success && fail); //false
}
//List 集合
_listType() {
print('---_listType---');
List list = [1, 2, 3, '集合']; //初始化添加元素
List listmap = ["苹果", "梨子", "香蕉"];
print(list);
//集合泛型
List<int> list2 = [1, 2, 3]; //只能放int类型
//赋值 动态数据类型的集合 赋值给一个 指定类型的时候 会报错
// list2 = list; //类型转换错误
List list3 = [];
list.add('listadd'); //通过add方法添加元素
list3.addAll(list); // [list3,1,2,3,集合]
print(list3);
//集合生成函数
List list4 = List.generate(3, (index) => index * 2);
print(list4); //[0, 2, 4];
//集合遍历 的方式
for (int i = 0; i < list.length; i++) {
print(list[i]); //1 //2 //3 //集合
}
for (var o in list) {
print(o);
}
list.forEach((val) {
// 接受一个参数,集合的值
print(val);
});
//map
//
// 注意map方法返回的不是集合
// 需要手动的转为集合
// print(list2.toList());
var listmap1 = listmap.map((value) => {
print(value),
});
//where
类似于数组中的filter方法
返回值不是集合,需要转化
List ll = [1, 3, 5, 9, 6, 8, 1];
var list5 = ll.where((value) {
return value >= 5;
});
print(list5); //(5,9,6,8)
print(list5.toList()); //[5,9,6,8]
// any
//只要有一个符合条件返回true,否则返回false
var bool = ll.any((value) {
return value > 3;
});
print(bool); //true
//insert insert()函数接受一个值并将其插入指定的索引。
//insertAll insertAll()函数从指定的索引开始插入给定的值列表。
list.insert(0, 5); // [5,1,2,3,集合]
list.insertAll(0, [110, 111]); // [110,111,5,1,2,3,集合]
print(list);
print('sublist'); //查询指定区间的值- sublist
print(list.sublist(1)); //返回从索引1开始的所有数据 [111, 5, 1, 2, 3, 集合, listadd]
print(list.indexOf(1)); //3
print(list.getRange(2, 4)); //获取某个区间的值- getRange (5, 1)
//判断数组所有元素是否都满足设定条件 - every
// 判断数组内是否有满足条件的元素- any
print(list.every((v) => v > 1)); // true
// 通过集合内容删除 remove remove 方法只会删除第一个匹配的内容, 如果有多个相同的内容,后面的不会被删除
// list.remove("集合");
// 通过索引删除内容
// list.removeAt(2);
}
}