Dart学习笔记之一:简介、概念、保留字

1,281 阅读3分钟

笔记

简介

定义一个函数

saySomething(String something) {
    print(something);
}

使用调用上面定义的函数

main() {
    final String h = 'Hi';
    saySomething(h);
}

注释

// 注释

类型

int

数值

10

控制台打印

print()

字符串

'Hello world'

字符串插值

String s1 = 'Hi';
const String s4 = "He say ${s1}";

程序入口

main() // 程序运行的必须要声明的函数

变量声明

var abc = 1; // 声明变量的方式之一

重要概念

  • 放置在变量里的值,一定是一个对象(object)。而所有的对象都是类(class)的实例,无论是数值(numbers),函数(functions),还是空(null)。同时,所有的对象也继承于Object类。
  • 尽管是一门强类型(strongly typed)的编程语言,但还是可以不使用类型注解(type annotations),因为Dart能根据值去推断出类型。如果没有预期的类型,可以使用dynamic去声明。
  • Dart支持泛型(generic types),例如List<int>(一个整数列表),或者List<dynamic>(不限定类型列表)。
  • Dart支持顶级函数(top-level functions),就像main(),以及绑定到类或对象的函数(分别是静态和实例方法),同样的,也可以在函数内创建函数。
  • Dart支持顶级变量(top-level variables),以及绑定到类或对象的变量(静态和实例变量)。实例变量有时称为字段(fields)或属性(properties)。
  • 虽然Java一样是一门面向对象编程语言,但Dart没有publicprotectedprivate关键词。如果像想要声明一个私有变量,只需要将其标识符以下划线(_)最为前缀就可以。
  • 标识符必须以下划线或者字母开头,紧接着才能参杂进数字,其他特殊符号不支持。
  • Dart同时支持表达式和语句(语句通常包含一个或多个表达式,但表达式不能直接包含语句)。
  • Dart的开发工具会提供两种提示:warningerrorwarning只是表明代码可能无法正常工作,但它们不会阻止程序执行。error会出现在编译时或运行时。编译时错误会阻止代码执行,而运行时错误导致代码执行时引发异常。

关键词

abstract2 dynamic2 implements2 show1
as2 else import2 static2
assert enum in super
async1 export2 interface2 switch
await3 extends is sync1
break external2 library2 this
case factory2 mixin2 throw
catch false new true
class final null try
const finally on1 typedef2
continue for operator2 var
covariant2 Function2 part2 void
default get2 rethrow while
deferred2 hide1 return with
do if set2 yield3

每一门编程语言都有其特定的保留字,Dart也不例外。我们开发时,要避免使用保留字去作为标识符。如果有必要,有角标的还是可以使用的。

  1. 上下文关键词,仅在某些位置有效。可在多数地方作标识符使用。

  2. 内置标识符,为了简化将JavaScript代码移植到Dart的任务,这些关键字在大多数地方都是有效的标识符,但它们不能用作类或类型名称,也不能用作导入前缀。

  3. 1.0发布后添加的异步支持的相关更新,是有限的保留字。不能在标记为asyncasync *sync *的任何函数体中使用awaityield作为标识符。

标识符:即用作变量、函数、类的名称。

学习心得

写过Javascript或者Java的小伙伴, 对Dart入手会比较快,首先因为Dart是一门面向对象编程(Object Oriented Programming,OOP)语言,很多东西都有Java的影子。而对于JS来说,很多的写法,用法,包括概念,都和Javascript相似,而对于学过Typescript的小伙伴,学习来更快。