flutter开发,Dart中的那些骚气语法!

2019-06-1915:27:34APP与小程序开发Comments6,226 views字数 2072阅读模式

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

学习一门新的语言,我们可以以自己现有的熟悉的语言来类比,比如我们非常熟悉Java,那么剩下的就是需要掌握与Java不同的Dart语法,剩下的就需要靠自己多写多看来慢慢熟悉。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

国际惯例,使用Dart完成一个:”Hello,World!”文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

变量

变量是一个引用,未初始化的变量值是null。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

可以用Object、var与dynamic声明的变量赋任何类型的值,但是背后的原理却是非常不同。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

1、Object: 与Java一样Object是所有类的基类,Object声明的变量可以是任意类型。(在 Dart 中 甚至连 数字、方法和 null 都是对象,比如int。)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

2、var: 声明的变量在赋值的那一刻,决定了它是什么类型。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

3、dynamic: 不是在编译时候确定实际类型的, 而是在运行时。dynamic声明的变量行为与Object一样文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

没有初始化的变量自动获取一个默认值为 null(类型为数字的 变量如何没有初始化其值也是 null)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

在声明变量的时候,也可以选择加上具体 类型:int a = 1;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

对于局部变量,按照Dart代码风格推荐,使用 var 而不是具体的类型来定义局部变量。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

final与const

如果不打算改变一个变量,可以使用final和const,它们可以替代任何类型,只能在声明时初始化,且不能改变。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

final与const从使用上根本看不出区别,但是final是运行时常量,而const是编译器常量,它的值在编译期就可以确定,编译时常量能够让代码运行的更高效。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

类的变量可以为 final 但是不能是 const 。如果 const 变量在类中,需要定义为static const静态常量文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

内置的类型

与Java的八大内置基本数据类型不同,Dart 内置支持下面这些类型:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

  • numbers
  • strings
  • booleans
  • lists (也被称之为 arrays)
  • maps
  • runes (用于在字符串中表示 Unicode 字符)
  • symbols

Numbers(数值)

num是数字类型的父类,有两个子类int和 double文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

Strings(字符串)

Dart 字符串是 UTF-16 编码的字符序列。 可以使用单引号或者双引号来创建字符串,单引号和双引号可以嵌套使用,否则需要使用\进行转义。字符串中也可以引用变量与表达式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

与Java一样可以使用 + 操作符来把拼接字符串,也可以把多个 字符串放到一起来实现同样的功能:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

使用三个单引号或者双引号可以 创建多行字符串对象文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

提供一个 r 前缀可以创建一个 “原始 raw” 字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

Booleans(布尔值)

Dart 有一个名字为 bool 的类型。 只有两个对象是布尔类型的:true 和 false 。这一点和Java没有太大的区别。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

Lists(列表)

几乎所有编程语言中最常见的集合可能是数组或有序对象组。在Dart中,数组就是List对象。对List进行遍历也和Java一样。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

Maps(映射集合)

Map:键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

与List一样,在 map字面量之前添加 const 关键字,可以 定义一个 编译时常量 的 map文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

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

Unicode为世界上所有的书写系统中使用的每个字母,数字和符号定义了唯一的数值。 Dart 字符串是 UTF-16 位代码单元字符序列, 所以在字符串中表达 32位 Unicode 值需要 新的语法。Runes就是UTF-32字符集的string 对象。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

表达Unicode代码点的常用方法是\uXXXX,其中XXXX是4位十六进制值。要指定多于或少于4个十六进制数字,需要将值放在大括号中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

实际上在Flutter开发中Runes与下一个Symbols可能永远也不会用到。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

Symbols

操作符标识符,可以看作C中的宏。表示编译时的一个常量文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

操作符

常见的操作符就没什么可说的了,主要来看看Java所没有的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

类型判定操作符

as、 is、 和 is! 操作符是在运行时判定对象 类型的操作符文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

操作符解释
as类型转换
is如果对象是指定的类型返回 True
is!如果对象是指定的类型返回 False

as 操作符把对象转换为特定的类型,但是如果无法完成转换则会抛出一个异常文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

is 和Java中的 instanceof 相同文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

赋值操作符

=+=\=*=这些不必多说,还有一个 ??= 操作符用来指定 值为 null 的变量的值文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

条件表达式

Dart 有两个特殊的操作符可以用来替代 if-else 语句:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

  • condition ? expr1 : expr2如果 condition 是 true,执行 expr1 (并返回执行的结果); 否则执行 expr2 并返回其结果。
  • expr1 ?? expr2如果 expr1 不为null,返回其值; 否则执行 expr2 并返回其结果。

级联操作符

级联操作符 (..) 可以在同一个对象上 连续调用多个函数以及访问成员变量。 使用级联操作符可以避免创建 临时变量, 并且写出来的代码看起来 更加流畅:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

安全操作符

Dart提供了 ?.操作符。左边的操作对象 如果 为 null 则返回 null文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

flutter开发,Dart中的那些骚气语法!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/13686.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/xcx/13686.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定