Dart
什么是Dart
- Dart语言是由谷歌公司开发的网络编程语言,于2011年10月10日发布。有了Dart,你可用的网页脚本将不只是Java专属.在使用Chromium的浏览器中,你可以直接运行Dart程序,而且有可靠的虚拟机帮助你提升程序性能和安全性。
- Dart 是一个为全平台构建快速应用的客户端优化的编程语言。
特点
- 为 UI 构建优化:使用针对用户界面的创造进行优化的语言进行开发。
- 研发生产力提高:在正在运行的应用中使用热重载立刻看到您的修改。
- 在全平台极速运行:可编译为移动端、桌面端及后端的 ARM & x64 的二进制文件,或是为 Web 平台编译 Javascript。
Hello World
void main(){
print('Hello Dart!');
}
解释:
- 首先创建一个文件,
xxx.dart
。 main()
函数是程序的主入口:是一个特殊且必须的顶级函数,Dart 应用程序总是会从该函数开始执行。print()
函数是打印输出,可以将文本打印到控制台上。
变量与常量
变量
书写格式
- 格式1:不指定类型,使用
var
关键词;
var name = "Bob_Var";
print(name);
- 格式2:指定类型,使用顶级类
Object
;
Object name3 = "Bob_Object";
print(name3);
- 格式3:指定类型,使用确定的类型,例如
int\String
等;
String name2 = "Bob_String";
print(name2);
- 格式4:在变量类型不确定的情况下,可以使用
dynamic
。
dynamic name4 = "Bob_dynamic";
print(name4);
其他
未初始化的变量默认值都是null,包括数字类型额默认值也是null,在Dart中一切皆对象。
int lineCount;
assert(lineCount == null);
运行这段文本会报错,错误是报错:Non-nullable variable 'lineCount' must be assigned before it can be used.
提示未初始化的数值都是null。
注:assert()函数在生产环境下会被忽略;开发过程中会在非ture的调价年抛出异常。
常量
书写格式
final
- 被
final
修饰的对象值只能设置一次。 - 格式:
final 可选类型 变量名 = 值
final name = "Bob";
final String nickname = "Bobby";
print(name);
print(nickname);
name = "bob2";//报错:Error: Can't assign to the final variable 'name'.
nickname = "bob2";//报错:Error: Can't assign to the final variable 'name'.
- 注:我们发现我们通过
=
赋予新值的时候报错了,错误为Error: Can't assign to the final variable 'name'
,说明这个值只能设置一次。
const
- const可以创建常量值、生命创建常量值的构造函数
- 格式:
const 变量名 = 值
- 格式:
var 变量名 = const []
const bar = 100000;
const double atm = 1.123 * bar;
print(bar);
print(atm);
var foo = const [];
final bar2 = const [];
const baz = [];
两者的对比
相同点
- final、const必须初始化
- final、const只能赋值一次
不同点
- final在被使用到的时候才会进行初始化, 如果只是被定义, 而没有被使用到,那么这个变量一直没有被初始化 (可以理解为'懒加载')。
- const修饰的变量,一经定义就会在编译期间对其进行初始化。
- final可修饰实例变量、const不可以修饰实例变量。
- final 只可用来修饰变量, const 关键字即可修饰变量也可用来修饰 常量构造函数。
- 当const修饰类的构造函数时,它要求该类的所有成员都必须是final的。
- 访问类中const修饰的变量需要static修饰。
代码示例
void main(List<String> args) {
test1();
test2();
}
/**
* 常量
* Final和Const
*/
void test2() {
print("test2----------------");
//Final类型的变量值只能设置一次
final name = "Bob";
final String nickname = "Bobby";
print(name);
print(nickname);
// name = "bob2";//报错:Error: Can't assign to the final variable 'name'.
const bar = 100000;
const double atm = 1.123 * bar;
print(bar);
print(atm);
//final在被使用到的时候才会进行初始化, 如果只是被定义, 而没有被使用到,
//那么这个变量一直没有被初始化 (可以理解为'懒加载'); 而const修饰的变量,
//一经定义就会在编译期间对其进行初始化
//const还可以创建常量值、生命创建常量值的构造函数
var foo = const [];
final bar2 = const [];
const baz = [];
}
/**
* 变量
*/
void test1() {
print("test1---------------");
//方式1:不指定类型,使用var关键词
var name = "Bob_Var";
//方式2:指定类型(Object|type)
String name2 = "Bob_String";
Object name3 = "Bob_Object";
//方式3:在变量类型不确定的情况下,可以使用dynamic
dynamic name4 = "Bob_dynamic";
print(name);
print(name2);
print(name3);
print(name4);
//未初始化的变量默认值都是null,包括数字类型额默认值也是null,在Dart中一切皆对象。
// int lineCount;
// assert(lineCount == null);
//报错:Non-nullable variable 'lineCount' must be assigned before it can be used.
//assert函数在生产环境下会被忽略;开发过程中会在非ture的调价年抛出异常
}
本文由 Gorrywang 创作,严禁转载与复制!
最后编辑时间为: Feb 28,2022