r语言 新增一列数字类型_一周精通Dart语法系列(一)关键字、变量、常量与数据类型...

Dart语言是使用Flutter框架开发必备的语言,Flutter是一个跨平台的框架,一套代码就可以完美编译成安卓和ios两个平台的移动应用,适配也很不错,最近谷歌又新推出的Flutter web,也可以用Dart代码去完成Web开发了(Futter web beta版)。Dart语言很友好,和Java很类似,也很像react,JavaScript,所以学习成本也是很低的。所以这也是我推荐学习Dart语言的一个原因。由于内容较多,接下来我会用多篇文章带领大家快速学习Dart语言的关键知识点。作者写文章不容易,觉得好看的话,点一下文末的“关注”,支持一下吧,谢谢大家。

Dart注释

Dart的注释分为3种:单行注释、多行注释、文档注释。

例如:// todo:待完成

例如:/* todo:待完成 */

3、文档注释以///或者/**开头。可以通过dartdoc命令导出文档。

文档注释的使用,例如:/// todo:待完成

文档的导出如图所示:

911e34cd578dd9d2c69e7c794e7a774a.png

导出的结果在我的工程根路径的/doc/api/文件夹里面,如图所示:

6de567e5603ab31424b302ef2e47e3f6.png

然后浏览器打开index.html就可以看到文档了。如图所示:

9c9731af778770c8085724afb06a05ea.png

关键字(60个)

5个上下文关键字(仅在特定位置具有含义。它们在任何地方都是有效的标识符)

350be6d82ce61095dbb5fd0fa15e6dbe.png

其中内置标志符有:(20个)

753d96533f14bd9b2f1720bfe9ec636b.png

Dart新增的,有限的保留字,支持异步功能的关键字有:(2个)33个保留字(不能使用保留字作为标识符)

71bd84794ebbcb9c21d97ca8b17a5f69.png

跟java相比,Dart特有的关键字有:(27个)

37902e20df0de0c433e0fd35f9805e00.png

变量与常量

(一)变量的声明,可以使用 var、Object 或 dynamic 关键字。

创建变量并初始化变量实例:

变量存储引用。

  • 1) 使用Object或dynamic关键字

调用的变量name包含对String值为“张三” 的对象的引用。
name推断变量的类型是String,但可以通过指定它来更改该类型。
如果对象不限于单一类型(没有明确的类型),请使用Object或dynamic关键字

  • 2) 显式声明将被推断的类型

比如String,int等。

这个类型有很多,具体在下文有介绍。

(二)默认值

未初始化的变量的初始值为null(包括数字),因此数字、字符串都可以调用各种方法。

(三)Final 和 Const的用法

如果您从未打算更改一个变量,那么使用 final 或 const,不是var,也不是一个类型。
一个 final 变量只能被设置一次;const 变量是一个编译时常量。(Const变量是隐式的final。)
final的顶级或类变量在第一次使用时被初始化。

  • 1、被final或者const修饰的变量,变量类型可以省略。
  • 2、被 final 或 const 修饰的变量无法再去修改其值。
  • 3、注意:flnal 或者 const 不能和 var 同时使用
  • 4、常量如果是类级别的,请使用 static const
  • 5、常量的运算
  • 6、const关键字不只是声明常数变量。您也可以使用它来创建常量值,以及声明创建常量值的构造函数。任何变量都可以有一个常量值。
  • 7、只要任何插值表达式是一个计算结果为null或数字,字符串或布尔值的编译时常量,那么文字字符串就是编译时常量。(关于$表达式和不同的数据类型后面会讲解。)

数据类型

Dart支持以下特殊类型:

numbers 数字
strings 字符串
booleans 布尔
lists list集合(也称为数组)
maps map集合
runes 字符(用于在字符串中表示Unicode字符)

(一)num数字类型

num是数字类型的父类,有两个子类 int 和 double。
num类型包括基本的运算符,如+,-,/和*,位运算符,如>>,在int类中定义。如果num和它的子类没有你要找的东西,math库可能会找到。比如你会发现abs(),ceil()和floor()等方法。

(1)int类型

int表示整数,int默认是64位二进制补码整数,int的取值不大于64位,具体取决于平台。编译为JavaScript时,整数仅限于valus,可以用双精度浮点值精确表示。可用的整数值包括-2^53和2^53之间的所有整数,以及一些幅度较大的整数。这包括一些大于2^63的整数。因此,在编译为JavaScript的Dart VM和Dart代码之间,int类中的运算符和方法的行为有时会有所不同。例如,当编译为JavaScript时,按位运算符将其操作数截断为32位整数。
示例如下:

判断一个int值需要多少bit(位),可以使用bitLength,例如:

(2)double类型

Dart的double是IEEE 754标准中规定的64位浮点数。double的最大值是:1.7976931348623157e+308,double类里面有一个常量maxFinite,我们通过语句print(double. maxFinite)可以得到double的最大值。
如果一个数字包含一个小数,那么它就是一个double类型。示例如下:

(3)Dart2.1里面新增特性,当double的值为int值时,int自动转成double。

例如:double test = 12;//打印结果是12.0

(4)Dart2.1,int也有api转成double。

例如:

(5)Dart2.1,double也有api转成int,会把小数点后面的全部去掉。

例如:

(二)String字符串类型

Dart里面的String是一系列 UTF-16代码单元。

(1)您可以使用单引号或双引号来创建一个字符串。

(2)单引号或者双引号里面嵌套使用引号。

单引号里面嵌套单引号,或者//双引号里面嵌套双引号,必须在前面加反斜杠。

(3)多个字符串相邻中间的空格问题:

除了单引号嵌套单引号或者双引号嵌套双引号不允许出现空串之外,其余的几种情况都是可以运行的。
示例如下:

单引号里面有双引号,混合使用运行正常

双引号里面有单引号,混合使用运行正常

(4)您可以使用相邻字符串文字或+ 运算符连接字符串:

直接把相邻字符串写在一起,就可以连接字符串了。

用+把相邻字符串连接起来。

使用单引号或双引号的三引号:

print(connectionStr3)输出结果如下:

print(connectionStr4)的输出结果如下:

(5)关于转义符号的使用

声明raw字符串(前缀为r),在字符串前加字符r,或者在前面再加一个,
可以避免“”的转义作用,在正则表达式里特别有用。

举例如下:

(6)使用`$`可以获得字符串中的内容,使用`${表达式}`也可以将表达式的值放入字符串中。使用`${表达式}`时可以使用字符串拼接,也可以使用`String`类或者`Object`里面的某些方法获得相关字符串属性。

1、使用$+字符串

2、使用$+字符串,以及字符串拼接

3、这里使用了字符串的拼接,以及使用了String类里面的toUpperCase()函数,把字母全部变成大写。

注:==操作符测试两个对象是否相等。assert是断言,如果条件为true,继续进行,否则抛出异常,中端操作。

(三)bool布尔类型

Dart表示布尔值的类型叫做bool,它有两个值,分别是:true和false,它们都是编译时常量。
Dart使用的是显式的检查值,检查值的类型,如下所示:

assert 是Dart语言里的的断言函数,仅在Debug模式下有效。
在开发过程中, 除非条件为真,否则会引发异常。(断言失败则程序立刻终止)。

(四)list集合,也成为数组

在Dart中,数组是List对象,因此大多数人只是将它们称为List。
以下是一个简单的Dart的List:

创建一个int类型的list

要创建一个编译时常量const的list,示例如下:

注意事项:

1.可以直接打印list包括list的元素,list也是一个对象。但是java必须遍历才能打印list,java若直接打印list,结果是地址值。
2.和java一样list里面的元素必须保持类型一致,不一致就会报错。
3.和java一样list的角标从0开始。

Dart的list集合给我们提供了很多api,示例如下,api太多就不逐个展示了:

7c2c7140edddfaf7242d0fa50aef1f6c.png

(五)map集合

Dart中的map是将键和值相关联的对象。键和值都可以是任何类型的对象。每个键只出现一次,但您可以多次使用相同的值。

(1)创建方式:

  • 1. 直接声明,用{}表示,里面写key和value,每组键值对中间用逗号隔开。
  • 2. 先声明,再去赋值。
  • 3. 要创建一个编译时常量const的map,请在map文字之前添加const:

(2)添加元素。格式: 变量名[key] = value,其中key可以是不同类型。

(3)修改元素。格式:变量名[key] = value

例如:把key为first的元素对应的value改成 alibaba

(4)查询元素

(5)删除元素.可以使用map的remove或者clear方法。

(6)关于map集合的小结:

(六)runes 字符(用于在字符串中表示Unicode字符)

Unicode为世界上所有的书写系统中使用的每个字母,数字和符号定义了唯一的数值。
Dart字符串是UTF-16代码单元的序列,所以在字符串中表达32位Unicode值需要特殊的语法。
Unicode代码点的常用方法是甥塘塘,其中XXXX是一个4位十六进制值。

例如,心形字符()是♥。要指定多于或少于4个十六进制数字,请将该值放在大括号中。例如,笑的表情符号是u{1f600}。

String类有几个属性可以用来提取符文信息。codeUnitAt和codeUnit属性返回16位代码单元。
以下示例说明了符文,16位代码单元和32位代码点之间的关系。

好了今天就写到这儿,喜欢就点关注,点赞吧,谢谢了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值