网络优化网络维护网络建站,互联网营销师是我国哪一年发布的新职业,手机版网站建设软件,0点开服的网页游戏文章目录 Dart语言特性一、变量变量定义变量默认值 二、常量三、数据类型数字类型字符串布尔值列表集合映射符文 运算符级联运算符类型判定符 Dart语言特性
一切皆为对象#xff0c;在Dart语言中所有变量类型都是对象#xff0c;null也是对象#xff0c;函数也是对象#… 文章目录 Dart语言特性一、变量变量定义变量默认值 二、常量三、数据类型数字类型字符串布尔值列表集合映射符文 运算符级联运算符类型判定符 Dart语言特性
一切皆为对象在Dart语言中所有变量类型都是对象null也是对象函数也是对象所有对象都继承自Object。Dart是强类型语言但是变量类型声明是可选的Dart可以推断出变量的类型。Dart支持泛型类型类似java的泛型。函数支持嵌套。不支持publicprotected和private关键字在Dart语言中可以通过下划线(_)开头命名来表示私有的反之就是公开的。 一、变量
变量定义
通过var定义并初始化变量
var name ABC;Dart语言是强类型语言虽然这里没有指定变量类型但Dart编译器可以通过首次初始化推断变量的类型。
String name ABC; //我们也可以直接定义String类型并初始化变量默认值
因为在Dart语言中一切皆为对象所以在定义变量时未初始化的值都是null
int sum; //这里的sum的默认值是null二、常量
在Dart中的const 和 final 都可以用来定义一个不可变的常量
final name Jack;
final String secondName Rose; //同样的可以指定或不指定数据类型
const age 18;final和const的区别就是在编译的时候const的值就已经确定了而final不一定可能需要运行的时候才能确定值。
final x new DataTime.now(); //将x变量的值初始化为当前时间x的值只有在运行的时候才能确定三、数据类型
Dart 支持以下数据类型
数字(number)字符串(string)布尔值(boolean)列表(list)集合(set)映射(map)符文(rune)符号(Symbol)
数字类型
Dart中数字类型有2种类型
整数整数表示没有小数的的数值使用int关键字表示。双精确度Dart中表示64位浮点数使用double关键字表示。
var x 123;
var y 1.199;从Dart2.1开始必要时整数会自动转换为双精确度
double z 10; //相当于double z 10.0; 在2.1之前是报错的字符串
Dart 中字符串是一组 UTF-16 单元序列符文用于表示UTF-32单元序列。用String关键字表示字符串可以使用单引号或双引号来创建字符串。
var s1 abcd;
var s2 ABCD;
//若是使用的是双引号能够内嵌单引号
//固然若是使用的是单引号能够内嵌双引号不然须要“\”转义
//var s3 ‘It\’s ok!’;
var s3 Its ok!;Dart允许你使用号进行字符串的拼接。
String str hello world!;可以使用${expression}将表达式的值放在字符串中。
String str null;
String newStr 这是${str};
print(This is $str);以下是字符串和数字之间相互转换的方式。
// String转int
var a int.parse(1);
print(a 1);// String转double
var b double.parse(1.1);
print(b 1.1);// int转String
var c 1.toString();
print(c 1);// double转String
var d 3.14159.toStringAsFixed(2);
print(d 3.14);Dart允许使用带有单引号或双引号的三引号创建多行字符串保留缩进格式。
var s1 这是多行字字符串s1。
;
print(s1);var s2 这是多行字字符串s2。
;
print(s2);布尔值
Dart中可以使用bool关键字来表示布尔类型
var isTrue true;
bool isFalse false;列表
在Dart中使用List对象来表示数组。
// 初始就赋值了限定了类型
// var list1 int[1,2,3];
var list1 [1,2,3];
Listint list2 [4,5,6];
print(list1.length); // 3
print(list1[1] 2);
list1[1] 1;
print(list1[1] 1);Dart2.3引入了扩展运算符(…)和空值感知运算符(…?)他提供了一种将多个元素插入集合的简洁方法。 例如使用扩展运算符将列表的所有元素插入另一个列表
var list1 [1,2,3];
var list2 [0,...list1];
print(list2); // [0,1,2,3]如果扩展运算符右侧的表达式可能为null则可以通过使用支持null的扩展运算符来避免异常
var list1;
var list2 [0,...?list1];
assert(list2.length 1);Dart2.3还引入了if和collection的集合使用它在if条件和for循环构建集合。 下面是一个使用集合的示例如果要创建一个包含三个或四个项目的列表
// nav的长度可能是三个或者四个
var nav [Aa,Bb,Cc,if(isTrueOrFalse) Dd];这是一个使用集合来操作列表项目然后将他们添加到另一个列表中的示例
var listOfInts [1,2,3];
var listOfStrings [#0,for(var i in listOfInts) #$i];
print(listOfStrings); // [#0,#!,#2,#3]集合
Dart中的Set是无序的且唯一想的集合。
var set {11,22,33,44};创建一个空集合需要赋上类型参数否则就不是创建Set而是Map了。
// 两种方式都可以创建空集合
var set String{};
SetString set2 {};
// var set {}; 这不是创建空Set而是创建一个Map部分使用方式
var set String{};
var set2 {Aa,Bb,Cc};
//添加元素
set.add(Dd);
set.addAll(set2);
print(set.length);映射
通常Map是关联键和值的对象键和值都可以是任意类型的对象每个键只出现一次但可以多次使用相同的值。
var map {1:Aa,2:Bb,3:Cc
};var map2 Map();
map2[1] Aa;
map2[2] Bb;
map2[3] Cc;
print(map2.length); // 3符文
在Dart中Runes用来表示字符串中的UTF-32的编码字符。 Unicode 定义了一个全球的书写系统编码 系统中使用的所有字母数字和符号都对应唯一的数值编码。 由于 Dart 字符串是一系列 UTF-16 编码单元 因此要在字符串中表示32位 Unicode 值需要特殊语法支持。
表示 Unicode 编码的常用方法是 \uXXXX, 这里 XXXX 是一个4位的16进制数。 例如心形符号 (♥) 是 \u2665。 对于特殊的非 4 个数值的情况 把编码值放到大括号中即可。 例如emoji 的笑脸 () 是 \u{1f600}。
var clapping \u{lf44f};Runes input new Runes(\u2665 \u{lf605} \u{lf60e} \u{lf596} \u{lf44d}
);
print(new String.fromCharCodes(input));运算符
在Dart中加减乘运算基本相同但唯独除法时要单独注意下。
print(5 / 2); // 结果为2.5
print(5 ~/ 2); //结果为2级联运算符
级联运算符…可用于通过对象发出一系列调用。
class Student{void study() {print(study);}void play() {print(play);}
}void main() {new Student()..study()..play();
}类型判定符
as将对象强制转换为特定类型is类型判定