Dart语言之数据类型
俗话说的好,“磨刀不误砍柴工”,
所以
我们在学习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中的布尔数据类型仅支持两个值 - true
和false
。
关键字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的数组表示利用{ }
内容上:
- list可以插入多个null元素,而set只允许插入一个null元素;
- list容器是有序的,而set容器是无序的;
- 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语言之数据类型相关推荐
- 2021超详细的Dart语言基础总结~你值得拥有~
文章目录 前言:dart语言简介 一.变量 1.1.类型推导 1.2.默认值 1.3.Final 和 const修饰符 二.内建类型 2.1.数据类型 2.2.集合的相关操作 三.函数 3.1.函数的 ...
- Dart语言精简入门介绍
Dart语言精简入门介绍 1.介绍 Dart 在设计时应该是同时借鉴了 Java 和 JavaScript和kotlin 面向对象 JIT&AOT:JIT(Just in Time)优点:即时 ...
- dart语言中的常量与变量
dart 语言中的 常量 与 变量 李俊才 的 CSDN 博客 CSDN 主页:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 邮箱 ...
- flutter基础 dart语言学习笔记
1.JIT(Just-In-Time 动态编译) 即时编译为什么能大幅度提升性能 JIT,即Just-in-time,动态(即时)编译,边运行边编译: https://book.flutterchin ...
- Fluter基础巩固之Dart语言详解一
在上一篇https://www.cnblogs.com/webor2006/p/11367345.html中咱们已经搭建好了Flutter的开发环境了,而Flutter的开发语言是选用的dart,那么 ...
- 给Java开发者的Flutter开发基础---Dart语言
接近半年没有在简书冒泡了.这段时间一是忙于使用云信IM开发相应项目,二是整理和收集相关Flutter的相关资料进行学习.国内关于Flutter的资料还是太过于稀少,以至于我只能去YouTube和Ude ...
- 『Flutter开发实战』一小时掌握Dart语言
参考:https://dart.cn/guides/language/language-tour Dart 开发语言概览 本文将从变量和运算符开始到类和库的使用来向你介绍 Dart 编程语言的主要功能 ...
- dart语言基础_变量声明
作为Flutter的首席语言,如果要玩Flutter的同学就不得不学习一下dart语言.当然,其实也不需要怎么学习,因为你会在dart语言中发现许多其它语言的影子,可以说是集百家所长,颇有某企鹅的风范 ...
- Flutter Dart语言入门一篇就够了
Dart介绍 Dart 是一种用于开发Android.IOS. Web和桌面应用的开源编程语言. 它是由Google开发的. Dart 语法类似于 C.javascript 和 java 语言. 先决 ...
最新文章
- CVPR2020:Grid-GCN用于快速和可扩展的点云学习
- java 对象 php对象_java对象是什么?
- sql和泛型方法返回泛型_基于泛型编程的序列化实现方法
- hibernate 高级查询 query 或查询 or ,Restrictions
- The 'microsoft.jet.oledb.4.0' provider is not registered on the local machin
- 昨天日志 今天日志的获取方法
- 乡镇快递站20万入股50%,每天派件600,是否靠谱?
- JS两个字符串日期相减得出天数
- Laravel用post提交表单常见的两个错误
- mysql sql语句 datediff_MySQL数据库之MySQL DATEDIFF 函数
- 数据库某些要注意的问题(转的,侵权删除)
- 学校图书馆管理系统/图书管理系统的设计与实现
- TM16xx LED驱动和键盘扫描芯片使用
- unity暂停和继续按钮
- OpenTK探索二:立体纹理贴图
- Android Studio的Signature Versions选择,分别是什么意思
- sql查询当天交易总额最大的用户信息_如何分析交易记录? 因为后面要分析“每种类型用户的总交易金额”,所以保留左表(用户交易记录表)中的全部用户数据。 【题目】 某商场为了分析用... - 雪球...
- Atypical Games推出《辐射岛》和《辐射之城》的后续游戏
- 华为GaussDB数据库10个知识点,第7个你知道么?
- paperpass查重