《越空Dart教程》:第三节 第一个程序及数据类型

《越空Dart教程》:第三节 第一个程序及数据类型

自我介绍

大家好,我是越空,一位货真价实的16岁开发者。由于最近我在学习Dart这门语言,所以我就想总结我所学到的知识,分享给大家,让大家和我一起学习这门语言,争取做到可以让大家真的也学习到东西,并且少走一些弯路,感谢大家的支持。
这是我发表的第一套教程,多多少少会有不足的地方,还请大家多多见谅,有什么问题或者建议,也可以发表评论和私信我,希望可以得到大家的支持,我会再接再厉的!
那么接下来,我们正式开始今天的学习吧!

这是一套系列课程,新来的读者请从第一节开始学习

在上一节我们已经安装并配置完成了开发环境,在这节课我们将着手开发第一个Dart程序。

本节课我们将讲第一个Dart程序、注释、变量和常量、数据类型、异常处理这五大部分。

第一部分:第一个Dart程序

首先我们进入在上节中安装的VS code。
在这里插入图片描述
点击左上角的文件按钮。
在这里插入图片描述
点击新建文件。
在这里插入图片描述
然后再点击文件》保存,或者直接点击保存的快捷键Ctrl+S。将文件的后缀名从txt换成dart(dart程序的后缀名),然后保存到一个文件夹中。
接下来,我们就可以讲解代码的知识了,动手开发第一个Dart程序。
在这里插入图片描述

大家应该都看过运动会,在长跑或者短跑等比赛项目中,参赛的运动员们都会整齐划一的站在起跑线上备跑,如果在赛道的中途任何地方加入都属于违规,取消比赛资格。
在我们编程的世界中也同样如此,在程序中有一个“起跑线”叫做main方法,它是整个程序的入口,所有程序都将从这里开始运行,如果在程序中没有加入main方法 程序的入口,那么就和在赛道中途加入的运动员一样都会违规 从而产生报错的各种问题。
接下来我们开始写一个最简单的带有main方法的Dart程序
在这里插入图片描述

这就是mian方法固定的格式,当然 我们也可以去掉代码中的void关键字,void是空的返回值,以后的章节会细讲。方法默认的返回值就是void,所以为了使代码变得更加简洁 去掉void关键字也可以正常运行 不会报错的。但是为了程序规范,还是建议加上。
接下来我们开始运行这段程序看看吧,右键点击Run Code运行代码。
在这里插入图片描述在这里插入图片描述
下方是控制台 输出窗口,由于我们现在的dart程序是最简化的 还不具备任何的信息输出功能,接下来我们尝试添加一句输出语句 输出一点东西。在这里插入图片描述

print方法就是dart中的输出语句,拥有非常强大的输出功能
就这样,我们成功的打印输出了信息,当然 在print方法的引号中 想打印任何话 任何句子都是可以的。也可以打印多句。
例如。。
在这里插入图片描述

这里提醒一下,代码中的任何符号只能是英文的,如果有中文的标点符号程序就会报错 导致无法运行,比如在每一条语句后面的分号,比如括号,又或者是print语句中的引号等等。当然 在print引号里面 可以输出任何的符号 无论中文还是英文都是可以的。还有print方法中的引号可以是双引号也可以是单引号,都是可以的。
在print中还有另外一种多行打印的方法,就是三个引号括起来的信息,比如 还是打印上例中的信息,使用三引号的方式就是这样的,输出的结果相同。在这里插入图片描述

第二部分:注释

在技术界一直流传着这样一句话:当我写这段代码的时候,只有上帝和我知道,现在,只有上帝知道
意思就是说李白今天突发灵感 抒情写了一首诗,如果没有做标注,他几天后再看的时候就会这样说:这啥玩意啊,这玩意是我写的?啥意思来着,我当时想啥了呀。。
所以在程序中做注释是一个很好的习惯
在dart中注释是这样的 使用双斜杠,双斜杠的后面就是要注释的内容,当然 三个斜杠也是可以的,四个,五个都可以。。。
下图中将介绍dart中注释和多行注释的使用方法。在这里插入图片描述

第三部分:变量和常量

在研究变量和常量之前,我们先来解决一个问题,计算7的次方和立方,很简单,解决方案如下:在这里插入图片描述
但是如果出题人捣乱,又让你计算8的次方和立方,好的,你照做了,然后他又让你计算9的 10的 11 12的…好的 你选择揍死他。
这样我们就能很明显的看出问题所在,每一次修改就要修改五处,五次修改下来一共要修改25个地方。是不是很麻烦,可不可以每次就修改一处呢?五次下来只修改五次就好了。当然可以,这就是我们变量和常量的概念。
变量,顾名思义 就是可以变化的量
先引入一个小知识,

a=10;
///在编程语言中 会经常出现类似这种的式子
///在编程世界里,一个等于号代表赋值操作 是将右边的值赋值给左边的变量
///两个等于号才是判断是否两个值相等,才是数学中等于的意思

在dart中定义变量有两种方法,一种是不写类型 自动推断类型的定义,第二种是声明类型的定义方式在这里插入图片描述
就像这样,把原来需要修改五处的工作量简化到了一次,是不是很厉害,啥?你说那如果像上述说的 修改五个数值那不是也要修改五遍吗 能不能简化到一次就修改五个数值?
啊这…当然没问题呐,看好了在这里插入图片描述
但是这种操作需要用到秘密武器for循环,不是本节的内容 ,知道即可,以后会细讲。
讲完变量了,那常量呢?
变量是不可变化的量,那常量当然就是不能变化的量了,使用方法如下,在这里插入图片描述
接下来说下变量或常量的命名规则,可以由数字、字母、下划线、美元符号组成,当然 都是英文状态下的才可以 不支持中文的符号,需要注意的是 命名不能以数字作为开头。然后就是 命名是分大小写的 也就是变量a和变量A指的不是同一个值。命名最好是英文单词,变量或常量的命名用名词 方法的命名用动词。

第四部分:数据类型

在第三部分说了 在dart中定义变量或常量有两种方法,一种是不写类型 自动推断类型的定义,第二种是声明类型的定义方式。
在第三部分只讲了前者,在第四部分部分我们就来讲讲后者。
这部分我们会学习到num类型、以及num的子类型 int和double、String类型、bool类型、List、Set和Map这些常用类型的用法。
先说数字类型:num、int、double在这里插入图片描述
文本 字符串类型String在这里插入图片描述
布尔类型 bool类型在这里插入图片描述
接下来是Dart里的数组 List类型
想象一个场景,你拿着钱出去买东西 设立一个List类型作为购物清单,就可以使用List的第一种定义方法。

  List l1=['包包','笔记本电脑','智能手机'];

又或者 你拿着钱出去逛街 但是提前并不知道要买什么,看到什么好物之后再买。就可以使用第二种定义方法。

  List l2=new List();
  //增加一个成员
  l2.add('衣服');
  l2.add('裤子');

在这里插入图片描述
也可以事先指定一种成员类型的数据,比如说String类型,那么在这个List数组中就只能添加String类型的成员,添加其他类型的成员即会报错,操作如下,

List<String> l3=['一','二'];

或者 这样,

List<String> L3=new List<String>();

要创建一个常量的List类型,这样创建:

  List l4=const[1,2,3];

如果要单独打印List类型中的一个成员,这样操作:

  //初始化一个List类型变量
  List l5=const['第一个成员','第二个成员','第三个成员'];
  //[]内输入索引值,在dart中 数组的索引下标从0开始,所以[1]打印的是数组中的第二个成员
  print(l5[1]);

接下来讲解一下:List里面常用的属性和方法
先说属性

/*
    常用属性:
        length 长度
        reversed 翻转
        isEmpty 是否为空
        isNotEmpty 是否不为空
*/

看一下运行结果
在这里插入图片描述
然后说一下List类型常用的方法,

/*常用方法:
        add 增加
        addAll 拼接数组
        indexOf 查找 传入具体值
        remove 删除 传入具体值
        removeAt 删除 传入索引值
        fillRange 修改
        insert(index,value); 指定位置插入
        insertAll(index,list) 指定位置插入List
        toList() 其他类型转换成List
        join() List转换成字符串
        split() 字符串转化成List
*/

操作代码如下,在这里插入图片描述
输出结果,在这里插入图片描述
讲完了List类型,然后讲解一下与List很接近的Set类型在这里插入图片描述
除此之外,Set也和List一样 有add方法 用于新增成员。也可以如List一样事先指定类型去定义 规定集成中只能有统一的一种类型的成员。最后,Set中也有很多自己的属性和方法,感兴趣的大家可以去自行了解,因为用的不多,大多情况下都使用List类型,所以在这里不做讲解。

最后一个 映射类型 Map
在这里插入图片描述
再说一下,如何事先指定Map的key值和value值的类型,

Map<String,int> a={
'一加一等于几':2,
'二加二等于几':4,
};
}

常量的话,就这样,

var a=const<String,int>{
'一加一等于几':2,
'二加二等于几':4,
};

再说一下打印输出,如果想像List数组那般,

List a=[1,2,3];
print(a[1]);

打印单独的一个成员,在Map中是这样操作的,

Map person={
'姓名':'大明',
'岁数':'30',
'职业':['架构工程师','外卖员']
};
print('''
姓名:${person['姓名']}
年龄:${person['岁数']}
职业:${person['职业']}''');

运行结果,
在这里插入图片描述
为何与List不同,Map不可以使用索引值来进行打印?这里需要强调一下,Map与List不同 与Set相同的一点是 Map类型中的成员是无序的。
如同上面讲解List的步骤一样,接下来讲解一下:Map里面常用的属性和方法
先说属性

/*	
	常用属性:
        keys 获取所有的key值
        values 获取所有的value值
        isEmpty 是否为空
        isNotEmpty 是否不为空
*/

具体操作,在这里插入图片描述
常用方法,

/*
    常用方法:
        remove(key) 删除指定key的数据
        addAll({...}) 合并映射 给映射内增加属性
        containsValue 查看映射内的值 返回true/false
*/

具体操作,在这里插入图片描述
基本上 所有常用的数据类型 num、int、double、String、bool、List、Set、Map都讲解完了。包括List、Set、Map的基本的属性和方法。接下来再介绍五个List、Set、Map通用的方法。

/*
        forEach 循环集成中的每一个成员 并执行参数方法体中的代码
        map 循环集成中的每一个成员 并返回一个值.最终将每一轮返回的值弄成一个数组返回
        where 循环集成中的每一个成员 并将符合条件的成员组成一个数组返回
        any 遍历集成中的每一个成员 只要有一个满足条件的就返回true 没有则返回false
        every 遍历集成中的每一个成员 所有成员都满足条件才返回true 否则 返回false
*/

首先说forEach方法,在这里插入图片描述
map方法在这里插入图片描述
where方法在这里插入图片描述
any方法在这里插入图片描述

every方法在这里插入图片描述
五大常用的通用方法都讲解完了。在数据类型这里,最后再介绍一下Dart中的类型判断和类型转换。
先说类型判断,
在这里插入图片描述
最后讲一下类型转换,在这里插入图片描述

第五部分:异常处理

最后来讲一下异常处理,try…catch。
在写程序的过程中总会遇到很多异常,比如在一款应用的登录页面,用户在输入密码的时候 输入了非法字符(例如一些奇怪的符号),可是后台代码中是不允许这种操作的,就会出现报错。要解决类似这种的问题,就需要用到我们接下来要学到的try…catch 异常处理。
在这里插入图片描述
如果发生了异常,就如上图所述。如 没有发生异常,也就是str变量的值不是空,那么,
在这里插入图片描述
就会如约而至的打印转换成功的数据,

结束

好了,今天的这篇技术教程就到这里了,一共讲了第一个Dart程序、注释、变量和常量、数据类型、异常处理五大部分。数据类型那里内容较多,可以慢慢消化。
这篇写了四千多字,还没有计入代码的字数,争取以后做的精简吧。
下节预告
讲解Dart中的算术运算符、关系运算符、逻辑运算符、赋值运算符、条件表达式。
说人话:下节讲解Dart中的运算符、表达式。

好了,这节就分享这么多了,我们下节再见,祝大家编程愉快!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值