Flutter第三节----Dart中的数据类型

目录

一.Dart中的常用类型-----String

​编辑二.Dart中的常用类型-----数字类型

三.Dart中的常用类型-----布尔类型

​编辑

四.Dart中的常用类型-----列表类型1

五.Dart中的常用类型-----列表类型2

一.三个列表操作

​编辑二.四个列表属性

​编辑六.Dart中的常用类型-----字典类型

七.Dart中的常用类型----动态类

Dart中常用的数据类型有:字符串String,数字int,double,num,布尔bool,列表List,字典Map,动态类型dynamic。

一.Dart中的常用类型-----String

场景:我们需要来描述一段文本的时候,可以使用String来声明。

语法:String 属性名='文本内容';

特点:引号支持双引号或者单引号,支持拼接及模板字符串;

模板字符串语法:String 属性名 = "文本内容变量名";或String 变量名 = "文本内容{变量名}"

代码实例:

Dart 复制代码
void main(List<String> args) {
    String text='今天是个好日子';
    print(text);
}

拼接模板字符串实例:

1.String 变量名 = "文本内容{变量名}"![](https://i-blog.csdnimg.cn/direct/6df207a444574589946726f7fc9058c2.png)2.String 属性名 = "文本内容变量名"

复制代码
void main(List<String> args) {
    String flag="张三";
    String content = "我和$flag是好朋友";
    print(content);
}

二.Dart中的常用类型-----数字类型

1.Dart中的数字类型为:int,num,double;

2.场景:当我们需要去描述一个数字类型的时候;

3.区别:int-整型数字,num-可整型可小数,double-小数;

4.语法:int/num/double 属性名 = 数值;

5.赋值关系:double和int不能直接赋值,num不能直接给double直接赋值,double可以直接给num赋值。

5.代码示例:

Dart 复制代码
void main(List<String> args) {
    int friendCount = 3;
    print('我有$friendCount个朋友');
    num rest = 1.5;
    print('我有$rest月的假期');
    double appleCount = 1.5;
    print('我买了$appleCount斤苹果');
}
Dart 复制代码
    friendCount = appleCount.toInt();
    appleCount = friendCount.toDouble();
    appleCount = rest.toDouble();//num可以转化成doubLe给double赋值
    rest=appleCount;//double可以直接给num赋值

三.Dart中的常用类型-----布尔类型

1.场景:当我们需要一个属性来表示当前为真(true)或假(false)的时候,需要使用bool关键字来声明。

2.语法:bool 属性名 = true/false;

3.代码示例:

Dart 复制代码
void main(List<String> args) {
    bool isFinishWork = false;
    print("同学当前的作业状态为$isFinishWork");
    isFinishWork = true;
    print("同学当前的作业状态为$isFinishWork");

四.Dart中的常用类型-----列表类型1

1.场景:当一个变量需要存储多个值的时候,可以使用列表类型list;

2.需求:一个班级的同学用list进行存储,支持对学生的查找,新增,删除,循环;

3.语法:List属性名 = '学生1','学生2'

4.代码示例:

Dart 复制代码
void main(List<String> args) {
   List student = ["张三","李四","王五"];
   print(student);
}

5.列表方法:

<1.在尾部添加-add(内容)

<2.在尾部添加一个列表-addAll(列表)

<3.删除满足内容的第一个-remove(内容)

<4.删除最后一个内容-removeLast()

<5.删除索引范围内的数据-removeRange(start,end)------end结束的索引-不包含在删除范围内。

6.代码示例:

Dart 复制代码
   List student = ["张三","李四","王五"];
   print(student);
   student.add("刘六");
   print(student);
   student.addAll(["赵七","田八"]);
   print(student);
   student.remove("刘六");
   print(student);
   student.removeLast();
   print(student);
   student.removeRange(1, 2);
   print(student);

五.Dart中的常用类型-----列表类型2

一.三个列表操作

<1.循环-forEach((item)){});

<2.是否都满足条件-every((item{return 布尔值 });

<3.筛选出满足条件的数据-where((item){return 布尔值});

代码示例:

Dart 复制代码
   student.forEach((item){               //foreach循环
        print(item);
   });
   print(student.every((item){           //every判断是否满足
       return item.toString().startsWith("王");
   }));
   print(student.where((item){           //where筛选出满足条件的
       return item.toString().startsWith("王");
   }).toList());
   

二.四个列表属性

<4.列表的长度(属性)-length

<5.最后一个元素(属性)-last

<6.第一个元素(属性)-first

<7.是否为空(属性)-isEmpty

代码示例:

Dart 复制代码
   print(student.length);
   print(student.last);
   print(student.first);
   print(student.isEmpty);

六.Dart中的常用类型-----字典类型

场景:当存储的英文需要找到对应的中文描述时,需要使用键值对的类型Map

要求:需要定义一个英文对应中文的描述,并可以通过英文找到对应的中文

语法1:Map 属性名 = { key,value};

语法2:字典key可以取值和赋值;

代码示例:

Dart 复制代码
void main(List<String> args) {
   Map  transMap = {"lunch": "午饭","morning":"早上","hello":"你好"};
   print(transMap);
   print(transMap["lunch"]);
}

五个字典操作:

<1.forEach

<2.addAll

<3.containsKey

<4.remove

<5.clear

代码示例:

Dart 复制代码
void main(List<String> args) {
   Map  transMap = {"lunch": "午饭","morning":"早上","hello":"你好"};
   print(transMap);
   print(transMap["lunch"]);
   transMap.forEach((key,value){                    //foreach
       print("$key,$value");
   });
   transMap.addAll({"fine":"非常好"});               //addALL
   print(transMap);
   print(transMap.containsKey("fine"));             //containsKey 
   transMap.remove("fine");                         //remove
   print(transMap);
   transMap.clear();                                //clear
   print(transMap);
}

七.Dart中的常用类型----动态类型

定义:dynamic 可以用来声明动态类型

特点:可以自由改变类型,而且绕过编译时检查

语法:dynamic 属性名 = 值;

代码示例:

Dart 复制代码
void main(List<String> args) {
     dynamic  text = "hello0";        //可以自由改变类型,而且绕过编译时检查
     text = 1;
     text = [];
     text = {};
     text = false;
     print(text);
}

dynamic和var的区别:

dynamic运行时可自由改变类型,无编译检查,方法和属性直接调用;

var会根据初值直接进行类型判断确定类型后类型就被确定,有编译检查,仅限推断的属性和方法。

Dart 复制代码
void main(List<String> args) {
     dynamic  text = "hello0";        //可以自由改变类型,而且绕过编译时检查
     text = 1;
     text = [];
     text = {};
     text = false;
     print(text);
     text.startwith();                //两者区别
     var free = "测试";
     free.toInt();
}
相关推荐
HEJOO94 分钟前
深入理解 Java volatile 关键字:原理、用法与常见误区
java·开发语言·spring
曹牧4 分钟前
Java:no content to map due to end of input
java·开发语言
梦梦代码精13 分钟前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范
隔窗听雨眠27 分钟前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
David猪大卫31 分钟前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
charlie11451419131 分钟前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
李永奉39 分钟前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
z23456d1 小时前
第四十一天学习心得
学习
三8441 小时前
PHP Session 反序列化(2):漏洞根因 —— 序列化处理器错位与对象注入
android·web安全·php·反序列化·session
秦老师Q1 小时前
php零基础入门到实战,从语法到框架,一篇搞定
开发语言·php