// 前言,学习dart需要先安装dart环境, 很简单,直接进入dart官网下载安装就可以了
// 官网 https://dart.dev/
// dart环境搭建, 官方文档: https://dart.dev/get-dart
// 这是基本的入口函数main函数,
// main() {
// print("你好!");
// }
// dart和js一样可以不预先定义变量类型, 自动会类型推到
// dart中定义变量可以通过var关键字, var name = "张三"
// 也可以通过类型来申明变量 String name = "张三"
// var 不能喝类型申明同时使用, var String name = "张三", 这是错误的
// 表示main方法没有返回值
void main() {
print("你好!Dart");
var age = 10;
String name = "张三";
print(name);
print(age);
// var String des = "hello" 这是错误的
finalAndConst();
}
// 1.字符串
String str = "我是字符串";
// 2.数字类型
int num = 10;
// dart里面有类型校验
// 注意, dart和js的预定义的区别, js变量可以任意赋值, dart的变量在预定义之后,只能赋值相同类型的值,
// 例如 var str = ""将str预定义成字符串类型的变量, 当赋值int类型就会报错 str = 10, 会报错
// 同样的用类型定义的变量, 也不能给不同的类型值 String str1 = ""; 如果写str = 10, 也是报错
/**
* dart的命名规则:
* 1.变量名称必须由数字,字符,下划线或者美元符$组成
* 2.标识符开头不能是数字
* 3.标识符不能是保留字和关键字
* 4.变量的名称是区分大小写的
* 5.标志服一定要见名思意:变量名称建议用名词, 方法名称建议用动词
*/
/**
* Dart 常量: final 和 const 修饰符
* const值不变, 一开始就要赋值
* final可以开始不复制, 但是只能赋值一次,final不仅有const的编译时常量的属性, 重要的是他是运行时常量
* ,并且final是惰性化初始化, 即在运行时第一次使用前才初始化
* 是他运行时
* 永远不变的量,用final或者const修饰
*/
void finalAndConst() {
const PI = 3.141592653;
// PI = 2 //const修饰改值会报错
final PI1 = 3.14;
// PI1 = 3 //final修饰改值会报错
// 下面是final的运行时
final time = DateTime.now();
print(time);
// const就不能这样后面赋值一个函数
// const time1 = DateTime.now();//这里是需要一个常量值, 这样赋值会报错
}