Dart 开始
入口方法
dart
# main方法没有返回值,后面必需有;号
void main() {
print('object');
}
main() {
print('object');
}
注释
dart
// void main() {
// print('object');
// }
/**
* main() {
print('object');
}
*/
///main() {
/// print('object');
///}
变量
使用 var 定义变量,定义任意类型,会自动推断类型
类型关键词来定义变量,只能定义指定的类型
Dart 的命名规则:
- 变量名称必须由数字、字母、下划线和美元符($)组成。
- 注意:标识符开头不能是数字
- 标识符不能是保留字和关键字
- 变量的名字是区分大小写的如: age 和 Age 是不同的变量。在实际的运用中,也建议,不要用一个
- 标识符(变量名称)一定要见名思意:变量名称建议用名词,方法名称建议用动词
dart
void main() {
var str = 'hello world';
var num = 1234;
print(str);
print(num);
}
dart
void main() {
String rh = '隆海';
print(rh);
}
常量
常量不可以修改,定义有以下两种方式:
const
修饰符const
声明的常量是在编译时确定的,永远不会改变const
关键词在多个地方创建相同的对象的时候,内存中只保留了一个对象
final
修饰符- final 申明的常量允许声明后再赋值,赋值后不可改变,final声明的变量是在运行时确定的
- 而 final 不仅有
const
的编译时常量的特性,最重要的它是运行时常量,并且 final 是惰性初始化,即在运行时第一次使用前才初始化
注意:永远不改变的值,请使用 final 或const
修饰它,而不是使用 var 或其他变量类型。
dart
void main() {
const a = new DateTime.now();
print(a);
}
常量构造函数
常量构造函数总结如下几点:
常量构造函数总结如下几点:
- 常量构造函数需以const关键字修饰
- const构造函数必须用于成员变量都是final来修饰
- 如果实例化时不加const修饰符,即使调用的是常量构造函数,实例化的对象也不是常量实例
- 实例化常量构造函数的时候,多个地方创建这个对象,如果传入的值相同,只会保留一个对象
- Flutter中const修饰不仅仅是节省组件构建时的内存开销,Flutter在需要重新构建组件是不应该改变的,重新构建没有任何意义,因此Flutter不会重新构建const组件
dart
import 'dart:core';
class Container {
int width;
int height;
Container({required this.width, required this.height});
}
void main() {
var c1 = new Container(width: 100, height: 200);
var c2 = new Container(width: 100, height: 200);
print(identical(c1, c2));//false
}
dart
import 'dart:core';
//常量构造函数
class Container {
final int width;
final int height;
const Container({required this.width, required this.height});
}
void main() {
var c3 = const Container(width: 100, height: 200);
var c4 = const Container(width: 100, height: 200);
print(identical(c3, c4));//true
}
检查内存地址
dart
import 'dart:core';
// dart : core库中identical-函数的用法介绍如下。
//用法:检查两个引用是否指向同一个对象。
// bool identical(Object? a, Object? b);
void main() {
var o1 = new Object();
var o2 = new Object();
print(identical(o1, o2)); //false
}