入口方法
在上一篇文章中,我们配置了 Dart
开发的基本环境,而且在一个 main
方法中输出了简单的一句话。然而,这个 main
方法就是一个 Dart
程序(脚本)的入口。
语法:
main(){
//逻辑
}
注释
与其他语言一致,分为单行注释和多行注释。
//这是一个单行注释
/*这是一个多行注释*/
变量
在 Dart
语言中,定义变量有三种方式:
- 通过关键字
var
声明变量(类似于JS
) - 通过变量类型来指定这个变量的类型(类似于
Java
) - 通过关键字
dynamic
声明一个可跨类型的变量。
只能使用一种方式来定义,不能同时使用两种方式定义一个变量。
通过关键字 var
声明变量
通过关键字 var
可以声明任何类型的变量,Dart
具有变量类型推断的能力,一个变量一旦被初始化,那么这个变量的类型就确定了,就是这个初始化值的类型!!
var str = "jonas";
print(str);
str = 123;//报错
print(str);
分析:变量 str
已经被初始化值为一个字符串类型,所以这个变量的类型也被确定为字符串类型,从而不能保存数值类型的值。
注意:如果声明与初始化是分开进行的,结果是不一样的:
var str;
str = "jonas";
print(str);
str = 123;
print(str);
以上代码的执行结果是:正常输出 jonas
和 123.
出现这种结果的原因是:变量的声明与初始化是不分开的,如果通过 var
关键字声明一个变量,而没有显式的赋值(就如上面的情况),那么这个变量其实会被解释器赋值为 null
,从而这个变量的类型也就确定为 null
类型,在 Dart
语言中,null
类型的变量可以保存所有类型的值!!
通过类型关键字声明变量
在 Dart
语言中,提供了很多种变量类型(具体在后面的文章介绍),在声明变量时可以直截了当的指定这个变量的类型,从而省去解释器的类型推断。
String str = "jonas";
int num = 123;
print(str);
print(num);
通过关键字 dynamic
声明变量
通过关键字 dynamic
声明的变量可以保存任意类型的值。
dynamic str = "jonas";
print(str);
str = 123;
print(str);
结果:上面的两句输出会正确打印。
需要注意的是:我们更应该使用类型关键字去声明一个变量。
变量的命名规则
命名规则与大部分编程语言一致:
- 区分大小写
- 可以使用的字符有:字母、数字、下划线、$,但不能以数字开头
- 不能是关键字和保留字
- 尽量使用小驼峰命名法(不强制)
常量
在 Dart
语言中,提供了两个关键字 const
和 final
用于声明常量。两者定义的常量都是不能被修改的,区别在于 final
是惰性的,只有在第一次初始化时才决定这个常量的值,而 const
则在声明的时候就要指定初始化值。
//正确的
const PI = 3.14;
final num = 132;
const _date = new DateTime.now();//报错
final date = new DateTime.now();//正确
最后补充一点:在 Dart
语言中,语句都必须以分号或 }
结尾,不能像 JS
那样抛弃分号了。