俗话说的好,“磨刀不误砍柴工”,

所以

我们在学习Dart语言之前需要先进行相关的基础学习,

将我们的基础先打扎实!

老规矩,我们先看一下我的思维导图对于学习的整体思路。

在学习一个新东西前,首先问自己几个问题。是什么?为什么?怎么用?来进行逐层深入学习。

目录

数据类型

Numbers数值型

int整数型

double浮点型

String字符型

字符串中的方法

字符串模板表示

字符串插值处理

数值型与字符型之间的转换

Boolean布尔型

Bool用于判断的方法

集合型

集合型List、Set、Map

Stream

定义

Stream的操作

count()元素个数

distinct()方法

数据过滤

数据分页

求最大值

求最小值

总结


数据类型

Numbers数值型

数值型中主要是int(整数型)、double(浮点型)。

int整数型

表示的是整数,也就是非小数的值,例如:1、10、100...(int类型不能包含小数点)

int整型的取值范围:

如果是8位Int8,它们的范围(包括)【 -128 , 127】
如果是16位Int16,它们的范围(包括) 【-32768 , 32767】

如果 32 位Int32,它们的范围(包括)【

如果 64 位Int64,它们的范围(包括)【

如果符号位为 1,int则为负;如果为 0,int则为非负数。

double浮点型

表示的是小数数值即带小数点的值,dart中的Double表示的是64位双精度浮点数,例如:1.20、10.20...

double的取值范围:【1.7976931348623157E308,4.9E-324】

浮点型中的一些属性和方法:

【属性】

  • *.isEven; 是否为偶数
  • *.isOdd;是否为奇数

【方法】

  • *.abs()绝对值
  • *.ceil()往大了取
  • *.floor()往小了取
  • *.toInt()转换为整型
  • *.round()四舍五入
  • *.toDouble()转换为浮点型

【补充】

精度损失:精确值转成近似值可能会损失精度。

(最直观理解比如计算机中能否表示三分之一)

String字符型

字符串代表一系列的字符,比如变量常量名称,地址等都会用字符串数据类型来表示。

Dart字符串String是UTF-16的编码序列,可以使用单引号或者双引号来表示字符串。

var s1 = 'Single quotes work well for string literals.';var s2 = "Double quotes work just as well.";var s3 = 'It\'s easy to escape the string delimiter.';//创建多行字符串的方法:可以用三引号或双引号
var s1 = '''
You can create
multi-line strings like this one.
''';var s2 = """This is also a
multi-line string.""";

注意:当要表达32位的Unicode值时就需要使用Runes了。

字符串中的方法

字符串模板表示

var a = 123;
String b = 'dart : ${a}';

字符串插值处理

可以用 ${expression} 将一个表达式插入到字符串中。

如果这个表达式是一个变量,可以省略 { } 。为了得到一个对象的字符串表示,Dart会调用对象的 toString() 方法。代码如下:

 String name = '张三';int age = 20;//插入变量可以不用{}String s1 = '$name的年龄是$age';print(s1);int score = 90;//插入条件表达式必须加入{}String s2 = '成绩${score >= 60 ? '合格' : '不合格'}';print(s2);

数值型与字符型之间的转换

字符串转数字的方法

parse()

  • int.parse('111')转成整数型
  • double.parse('12.22')转成浮点型

数字转字符串的方法

toString()

Boolean布尔型

布尔数据类型提供内置支持,Dart中的布尔数据类型仅支持两个值 - truefalse

关键字bool用于表示Dart中的布尔文字。

Bool用于判断的方法

集合型

集合型List、Set、Map

List

定义:List是一种有序列,即元素的有序集合。List集合是具有长度的可索引对象集合。

创建列表的分类与方法

  • 定长列表--List.filled()方法
  • 不可变列表--List.unmodifiable()方法
  • 可增长列表--growableList

创建列表的其他方法:

  • 构造空列表--List.empty
  • 构造列表--List.from
  • 构造列表--List.generate
  • 构造列表--List.of

区分List.from和List.of重要区别在于,后者具有类型注释,而前者则没有。

var foo = new List.from(<int>[1, 2, 3]); // List<dynamic>
var bar = new List.of(<int>[1, 2, 3]); // List<int>

List中常用属性:

  • length获取长度
  • isEmpty判断列表是否为空
  • isNotEmpty判断列表是否非空
  • reversed列表数据反序后的可迭代对象
  • first返回列表的第一个元素
  • last返回列表的最后一个元素

List中常用方法:

List中的遍历:

  • for语句遍历列表
  • for...in语句遍历列表
  • List.forEach方法遍历列表

List去重方法:toSet()、contains()、比较器去重

Set

定义:Set是一种有序列,不可保存重复数据,也就是说Set中的数据具有唯一性。

Set中常用方法:

List VS Set

形式上:List的数组表示利用[ ] ;Set的数组表示利用{ }

内容上:

  1. list可以插入多个null元素,而set允许插入一个null元素
  2. list容器是有序的,而set容器是无序的;
  3. list方法可以允许重复的对象,而set方法不允许重复对象等等。

Map

定义:Map是一个键值对相关的对象,键和值可以是任何类型的对象。每个键只出现一次,而一个值则可以出现多次。映射是动态集合。 换句话说,Maps可以在运行时增长和缩小。

注意:key和value都可以是任意类型的对象,key只能出现一次,value可以出现多次。
Map对象的中key是不能重复的。

Map的定义方式:

不指定泛型:

//直接赋值var map1 = {'aa':'aaa','bb':22,'cc':true}; Map map2 = {'a':'a1','b':'b1'};
//间接赋值var map3 = new Map(); map3['aa'] = 'aaa'; Map map4 = new Map(); map4['a'] = 'aaa';

指定泛型:

//直接赋值var map1 = <String,String>{'aa':'aaa','bb':'22','cc':'333'};Map map2 = <String,String>{'a':'a1','b':'b1','c':'c1'};//间接赋值
var map3 = new Map<String,String>();map3['aa'] = 'aaa';
Map map4 = new Map<String,String>();map4['a'] = 'a1';

Map的属性:

Map的方法:

正对于Map的一些基础操作:

代码如下:

void main(){// 根据key获取valuevar infoMap1={'name':'psy','age':18};print(infoMap1['name']);// 获取所有的entries
var infoMAp1={'name':'psy','age':18};
print('${infoMap1.entries}${infoMap1.entries.runtimeType}');
//  获取所有的keysprint('${infoMap1.keys} ${infoMap1.keys.runtimeType}');
//获取所有的valuesprint('${infoMap1.values} ${infoMap1.values.runtimeType}');// 判断是否包含某个key或者valueprint('${infoMap1.containsKey('age')} ${infoMap1.containsValue(18)}');//true true// 根据key删除元素infoMap1.remove('age');print('hello!'+'${infoMap1}');
}

总结

以上就是最近所学的内容啦,希望对你能有所帮助~

 ~bye~

Dart语言之数据类型相关推荐

  1. 2021超详细的Dart语言基础总结~你值得拥有~

    文章目录 前言:dart语言简介 一.变量 1.1.类型推导 1.2.默认值 1.3.Final 和 const修饰符 二.内建类型 2.1.数据类型 2.2.集合的相关操作 三.函数 3.1.函数的 ...

  2. Dart语言精简入门介绍

    Dart语言精简入门介绍 1.介绍 Dart 在设计时应该是同时借鉴了 Java 和 JavaScript和kotlin 面向对象 JIT&AOT:JIT(Just in Time)优点:即时 ...

  3. dart语言中的常量与变量

    dart 语言中的 常量 与 变量 李俊才 的 CSDN 博客 CSDN 主页:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 邮箱 ...

  4. flutter基础 dart语言学习笔记

    1.JIT(Just-In-Time 动态编译) 即时编译为什么能大幅度提升性能 JIT,即Just-in-time,动态(即时)编译,边运行边编译: https://book.flutterchin ...

  5. Fluter基础巩固之Dart语言详解一

    在上一篇https://www.cnblogs.com/webor2006/p/11367345.html中咱们已经搭建好了Flutter的开发环境了,而Flutter的开发语言是选用的dart,那么 ...

  6. 给Java开发者的Flutter开发基础---Dart语言

    接近半年没有在简书冒泡了.这段时间一是忙于使用云信IM开发相应项目,二是整理和收集相关Flutter的相关资料进行学习.国内关于Flutter的资料还是太过于稀少,以至于我只能去YouTube和Ude ...

  7. 『Flutter开发实战』一小时掌握Dart语言

    参考:https://dart.cn/guides/language/language-tour Dart 开发语言概览 本文将从变量和运算符开始到类和库的使用来向你介绍 Dart 编程语言的主要功能 ...

  8. dart语言基础_变量声明

    作为Flutter的首席语言,如果要玩Flutter的同学就不得不学习一下dart语言.当然,其实也不需要怎么学习,因为你会在dart语言中发现许多其它语言的影子,可以说是集百家所长,颇有某企鹅的风范 ...

  9. Flutter Dart语言入门一篇就够了

    Dart介绍 Dart 是一种用于开发Android.IOS. Web和桌面应用的开源编程语言. 它是由Google开发的. Dart 语法类似于 C.javascript 和 java 语言. 先决 ...

最新文章

  1. CVPR2020:Grid-GCN用于快速和可扩展的点云学习
  2. java 对象 php对象_java对象是什么?
  3. sql和泛型方法返回泛型_基于泛型编程的序列化实现方法
  4. hibernate 高级查询 query 或查询 or ,Restrictions
  5. The 'microsoft.jet.oledb.4.0' provider is not registered on the local machin
  6. 昨天日志 今天日志的获取方法
  7. 乡镇快递站20万入股50%,每天派件600,是否靠谱?
  8. JS两个字符串日期相减得出天数
  9. Laravel用post提交表单常见的两个错误
  10. mysql sql语句 datediff_MySQL数据库之MySQL DATEDIFF 函数
  11. 数据库某些要注意的问题(转的,侵权删除)
  12. 学校图书馆管理系统/图书管理系统的设计与实现
  13. TM16xx LED驱动和键盘扫描芯片使用
  14. unity暂停和继续按钮
  15. OpenTK探索二:立体纹理贴图
  16. Android Studio的Signature Versions选择,分别是什么意思
  17. sql查询当天交易总额最大的用户信息_如何分析交易记录? 因为后面要分析“每种类型用户的总交易金额”,所以保留左表(用户交易记录表)中的全部用户数据。 【题目】 某商场为了分析用... - 雪球...
  18. Atypical Games推出《辐射岛》和《辐射之城》的后续游戏
  19. 华为GaussDB数据库10个知识点,第7个你知道么?
  20. paperpass查重

热门文章

  1. 0907Android数据存储
  2. python如何使用sdk_如何使用SDK开发一个博客
  3. Win7安装Office2010时提示需要安装MSXML 6.10.1129.0
  4. 三、Maven-单一架构案例(搭建环境:辅助功能,业务功能:登录)
  5. 旺店通与金蝶云星空对接集成采购入库单接口
  6. 测试开发面试题(1)
  7. iOS开发中,PNG图片的各种压缩软件,以及压缩率对比
  8. win7英文版很多软件中文显示乱码解决方案
  9. 重庆自考学历属于什么学历?
  10. 华为云开发者日震撼来袭!11月20日,上海见