Dart语法学习 目录
参考资料
语言特性
关键字
变量与常量
数据类型
运算符 operators
控制流程语句
异常 Exceptions
函数 Function
类 Class
类-方法
类-抽象类
类-隐式接口
类-扩展一个类(重写)
库和可见性
异步支持
语言特性 关键字(56个) 关键字---abstract do import super
as dynamic in switch
assert else interface sync
enum implements is this
async export library throw
await external mixin true
break extends new try
case factory null typedef
catch false operator var
class final part void
const finally rethrow while
continue for return with
covariant get set yield
default if static deferred
变量与常量
变量声明与初始化
调用的变量name包含对String值为“张三” 的对象的引用,name推断变量的类型是String,但可以通过指定它来更改该类型,如果对象不限于单一类型(没有明确的类型),请使用Object或dynamic关键字。
// 没有明确类型,编译的时候根据值明确类型 var name = ‘Bob’; Object name = '张三'; dynamic name = '李四'; // 显示声明将被推断类型, 可以使用String显示声明字符串类型 String name = 'Bob' ;
默认值
未初始化的变量的初始值为null(包括数字),因此数字、字符串都可以调用各种方法
//测试 数字类型的初始值是什么? int lineCount; // 为false的时候抛出异常 assert(lineCount == null); print(lineCount); //打印结果为null,证明数字类型初始化值是null
final and const
如果您从未打算更改一个变量,那么使用 final 或 const,不是var,也不是一个类型。 一个 final 变量只能被初始化一次; const变量是一个编译时常量,(Const变量是隐式的final) final的顶级或类变量在第一次使用时被初始化。
被final修饰的顶级变量或类变量在第一次声明的时候就需要初始化。
// The final variable 'outSideFinalName' must be initialized. final String outSideFinalName
被final或者const修饰的变量,变量类型可以省略,建议指定数据类型。
//可以省略String这个类型声明 final name = "Bob"; final String name1 = "张三"; const name2 = "alex"; const String name3 = "李四";
被 final 或 const 修饰的变量无法再去修改其值。
final String outSideFinalName = "Alex"; // outSideFinalName', a final variable, can only be set once // 一个final变量,只能被设置一次。 outSideFinalName = "Bill"; const String outSideName = 'Bill'; // 这样写,编译器提示:Constant variables can't be assigned a value // const常量不能赋值 // outSideName = "小白";
flnal 或者 const 不能和 var 同时使用
// Members can't be declared to be both 'const' and 'var' const var String outSideName = 'Bill'; // Members can't be declared to be both 'final' and 'var' final var String name = 'Lili';
常量如果是类级别的,请使用 static const