前端学习Dart|第三节

619 阅读4分钟

前言

本节接着第二节讲解:数值类型、字符串类型

视频讲解地址:传送门

数值型

Dart中的数值型可以分为两种,int类型,double类型

int类型

int类型为任意大小的整数。

在数学中的整数概念如下:

整数(integer)是正整数、零、负整数的集合。

看一个例子:

image.png

如果声明时为赋值会输出null,第一节课讲过原因。Dart中所有声明时未赋值变量都为null。

double类型

Dart Double是IEEE 754标准中指定的64位浮点数。

image.png

因为Dart中也使用了IEEE 754标准的64位浮点数类型,javascript也一样,所以大家比较了解的一些浮点数精度问题在Dart中依然存在,比如下方情况。

0.1 + 0.2 != 0.3

image.png

23.6 - 23 != 0.6

image.png

javascript中也是一样的场景,因为参照了同样的浮点数规则。

这一点大家注意一下即可,如果想知道具体原理,这两天我将把这类情况单独写篇文章剖析一下。

我们需要注意的是,平时开发中注意精度收拢即可。

属性及方法

这里我们主要讲一下int类型变量的一些属性和方法。

hashcode

返回数值的hash码,看一下例子:

image.png

输出:

image.png

isFinite

如果数字有限,则为真;

image.png

什么情况为无限情况呢?Dart中有这样的一种情况

image.png

isInfinite

该数字是正无穷大还是负无穷大。如果都不是则返回false;

image.png

isNaN

如果数字是双重非数字值,则为真; 否则,是的。

image.png

isNegative

如果数字是负数,则此属性返回布尔值true。

image.png

isEven & isOdd

是否是偶数,是否是奇数

image.png

abs()

返回数字的绝对值。

image.png

ceil()

返回不小于该数字的最小整数

image.png

floor()

返回不大于当前数字的最大整数

image.png

compareTo(x)

它返回一个整数,表示两个数字之间的关系。

image.png

  • 0 - 如果值相等。
  • 1 - 如果当前数字对象大于指定的数值。
  • -1 - 如果当前数字对象小于指定的数字值。

round()

此方法返回舍入到最接近整数的数字的值。可理解为四舍五入

image.png

toDouble()

整型转双精度浮点类型。

image.png

toInt()

双精度浮点类型转整型。以裁剪方式,无四舍五入

image.png

toString()

此方法返回数字值的字符串表示形式

image.png

官方还有一些不是很常用的属性及方法,这里就没有多说,上面的例子大家以javascript的思想来理解就可以了。

字符串

在Dart中字符串有几种表现形式。

  • 单行字符串使用单引号或双引号编写
  • 多行字符串使用三引号编写
  • 单引号包含双引号
  • 双引号包含单引号
  • 三引号包含双引号和单引号

image.png

输出:

image.png

字符串拼接

字符串拼接使用+.

image.png

相邻拼接

image.png

$拼接

如果拼接处为变量直接使用$

image.png

如果拼接处为表达式使用${}

image.png

属性及方法

索引运算符

String类型字符串可通过索引运算符访问代码但愿的字符串表示形式

image.png

字符串切割

使用substring切割字符串,返回切割索引范围内容

image.png

isEmpty

此字符串是否为空。

image.png

isNotEmpty

此字符串是否不为空

image.png

length

获取字符串长度

image.png

trim()

去除字符串前后的空格并返回

image.png

compareTo()

比较两个字符串之间的关系

image.png

关系对照表:

  • 0 - 字符串相等时。
  • 1 - 当第一个字符串大于第二个字符串时
  • -1 - 当第一个字符串小于第二个字符串时

该顺序与两个字符串不同的第一个位置处的代码点的顺序相同。如果一个字符串是另一字符串的前缀,则较短的字符串将在较长的字符串之前排序。如果字符串具有完全相同的内容,则它们在排序方面是等效的。排序不检查Unicode等效性。比较是区分大小写的。

replaceAll()

用给定值替换与指定模式匹配的所有子字符串。

image.png

支持正则表达式

image.png

replaceRange()

replaceRange第一个参数是开始下标,第二个参数是结束下标,第三个参数是要替换的字符串。替换的字符串包含开始下标,不包含结束下标,并且开始下标的数字要>=0,小于等于结束下标,结束下标的值要小于等于字符串长度,否则会报错。

image.png

split()

用给定值替换与指定模式匹配的所有子字符串。

image.png

END

第三节讲解,数值类型、字符串类型,这两个知识点中与javascript的区别还是较多的,需要大家使用的时候注意下。打算开两个分支文章,关于hashCode,关于IEEE 浮点类型原理。