Flutter(三)——一篇文章掌握Dart语言的用法

本文详细介绍了Dart语言的基础知识,包括变量与常量、内置类型(如Number、String、List、Map)、运算符、异常捕获、函数Function、异步编程和泛型等。特别讨论了Dart的强类型特性、常量的const与final区别、数字与字符串的操作、List和Map的使用以及异步操作中的Future和async/await。此外,文章还涉及到了Dart的继承、接口实现和混合(mixins)特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hello World

作为重新认识新语言的常规套路,每个程序员都不可避免的需要经历Hello World的历练,今天学习Dart语言也不例外,所以我们先来用Dart语言,输出Hello World:

void main(){
   
   
	print("Hello World")
}

比较与Java语言来说,Dart语言输出Hello World要简练许多,当然还是比Python的代码要多一点,你可以将这段程序用文本文件输入后, 将txt后缀改成dart后缀,然后在命令行中输入"dart 文件名",就可以打印出来了,如下图所示:
在这里插入图片描述

变量与常量

变量

Dart语言在声明变量的时候与JavaScript一致,都是通过var关键字定义,然后可以接着给这个变量设置不同的值,默认为null。

这里博主有必要强调一点,Dart语言是一门强类型语言,在第一次赋值的时候,如果已经确定了字符串类型,则不能更改为其他类型,这一点与JavaScript弱类型语言不一样,如果你是从JavaScript转过来,需要额外的注意,当然Dart第一次赋值为其他类型是可以变更的。

常量

对于已经学习过其他各种语言的小伙伴来说,这里算是非常基础的知识,一般的就不介绍了,我们直接来看代码:

//这里声明的是一个变量
var num;
num=11;
print("小明的年龄是 $num 岁");

//开始声明不是字符串,可以变更类型
num='20';
print(num);

//这里定义了一个常量,只能被赋值一次,与Java语言一致
final c=30;
print(c);


const d=50;
print(d);

在这里,我们可以看到,用了const定义了d,那么const与final有什么不同?

在Dart语言中,const变量是一个编译时常量,可以理解为const变量是一个隐式的final,但实例变量可以是final,不能是const。而且常量如果是类级别的,可以使用static const,例如:static const PI=3.1415。

内置类型

Dart语言内置了一些类型,具体如下:

(1)Number(数值型)

(2)String(字符串)

(3)Boolean(布尔型)

(4)List(列表)

(5)Map(键值对)

(6)Runes(符号字符)

(7)Symbols(标识符)

Number(数值型)

在Dart语言中,数值型分为整形int与浮点型double,可以用num,int,double声明使用。我们直接来看一段代码:

num a=10
a=10.2

可以看到,用num声明的变量也是int类型,而且可以修改为double类型,那么这里就有一个灵魂拷问了,反过来,把double类型改为int型可以吗?

答案是不可以,看一下源码我们就很好理解了,源码如下:

abstract class int extends num
abstract class double extends num

数值型运算

这里博主列举了常用的三种数值型运算操作:

(1)运算符:+,-,*,/,~/,%(加,减,乘,除,取整,取余)

(2)常用属性:isNaN,isEven,isOdd等

(3)常用方法:round(),floor(),ceil(),toInt(),toDouble(),abs()

这里需要注意的是,在Dart2.0中,如果我们声明的变量是double类型,但值是int型的,会自动转换为double类型,当然也可以通过toDouble()方法进行转换。

String(字符串)

在这篇博文开头,我们已经打印出来字符串Hello World,那么在Dart语言中,有哪几种创建的方式?

(1)直接使用单引号,双引号创建字符串

(2)使用三个引号或双引用创建多行字符串

(3)使用r创建原始raw字符串

字符串运算

(1)运算符:+,*,==,[]

(2)插值表达式:${expression}

(3)常用属性:length,isEmpty,isNotEmpty

(4)常用方法:contains(),subString(),startWith(),endsWith(),indexOf(),lastIndexOf(),toLowerCase(),toUpperCase(),trim(),trimLeft(),trimRight(),split(),replaceAll()

这里不需要死记硬背,大多数方法都是Java中都有的,而剩下的如果不会用,编译器也会提示你它的详细用法,所以这里博主就不再赘述。

特别注意:但是,这里还是与一点需要注意的,如果单引号嵌套单引号,或者双引号嵌套双引号需要加反斜杠进行转义

Boolean(布尔型)

在Dart语言中,布尔类型常用的地方也是在if条件中判断,Dart语言中布尔类型有四个特点:

(1)使用bool表示布尔类型

(2)布尔类型只有true和false二个值

(3)布尔值是编译时的常量

(4)可以在debug模式下,通过assert断言函数判断布尔值,如果不为真,会引发异常并终止程序往下运行,在开发的时候这点非常有用。

List(列表)

在Dart语言中,List表示集合,但其实与数组是同一个概念,使用的方式如下:

//创建List
var list=[1,2,3];
//通过构造方法创建
var list=new List();
//创建一个不可变的List
var list=const[1,2,3]

在实际的使用过程中,我们除了要创建List数组以外,还需要学会如何使用它,获取或者修改它的值,操作的代码如下:

list[0]=55;

在Dart语言中,List的常用的方法有这些:length(),add(),insert(),remove(),clear(),indexOf(),lastIndexOf(),sort(),sublist(),asMap(),forEach(),shuffle(),这里面有些很好理解,与Java的差不多,我们特别看看下面几个方法,使用代码如下:

var list=['one','two','three'];
print(list.indexOf('one'));//获取元素所在位置索引
print(list.sublist(2));//去除前两个元素返回新的List
print(list.shuffle());//打乱List元素的顺序

Map(键值对)

在Dart语言中,Map与Java中的Map类似,都是以键值对的形式存储数据,键和值可以是任何类型的对象,每个键只能出现一次,我们来看看它的声明代码:

//第一种声明方式
Map map={
   
   'book':'zhangyue','yellow':'blue'};
//第二种声明方式
Map map=new Map(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李元静

您的鼓励就是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值