笔记
简介
定义一个函数
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
没有public
,protected
和private
关键词。如果像想要声明一个私有变量,只需要将其标识符以下划线(_)最为前缀就可以。 - 标识符必须以下划线或者字母开头,紧接着才能参杂进数字,其他特殊符号不支持。
Dart
同时支持表达式和语句(语句通常包含一个或多个表达式,但表达式不能直接包含语句)。Dart
的开发工具会提供两种提示:warning
和error
。warning
只是表明代码可能无法正常工作,但它们不会阻止程序执行。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
也不例外。我们开发时,要避免使用保留字去作为标识符。如果有必要,有角标的还是可以使用的。
-
上下文关键词,仅在某些位置有效。可在多数地方作标识符使用。
-
内置标识符,为了简化将
JavaScript
代码移植到Dart
的任务,这些关键字在大多数地方都是有效的标识符,但它们不能用作类或类型名称,也不能用作导入前缀。 -
1.0
发布后添加的异步支持的相关更新,是有限的保留字。不能在标记为async
,async *
或sync *
的任何函数体中使用await
或yield
作为标识符。
标识符:即用作变量、函数、类的名称。
学习心得
写过Javascript
或者Java
的小伙伴, 对Dart
入手会比较快,首先因为Dart
是一门面向对象编程(Object Oriented Programming,OOP)语言,很多东西都有Java
的影子。而对于JS
来说,很多的写法,用法,包括概念,都和Javascript
相似,而对于学过Typescript
的小伙伴,学习来更快。