主入口函数

任何应用都必须有一个顶级 main() 函数,作为应用服务的入口。
main() 函数返回值为空,参数为一个可选的 List<String>

void 定义main函数为空(虽然默认为空,可以不写void,尽量还是写完整)

  1. void main() {
  2. var a = 1;
  3. print(a);
  4. }

参数:

  1. // 入口函数的参数
  2. void main(List<数据类型> arguments){
  3. }

示例:

  1. // 定义一个集合
  2. void main(List<String> arguments) {
  3. print(arguments); //[]
  4. }
  5. // 命令行传参(字符串)
  6. // dart run 1.dart 参数1 参数2
  7. // dart 1.dart a b
  8. void main(List<String> arguments) {
  9. print(arguments); //[a, b]
  10. print(arguments[0]); //a
  11. print(arguments.length); //2
  12. }

打印输出

print

该方法接收一个参数(任意对象),并输出显示这个对象的字符串值(由toString()返回)到控制台。

  1. void main() {
  2. var a = 1;
  3. print(a); //1
  4. print({'age': 18}); //{a: 1}
  5. }

assert

该方法接收的是判断条件,如果 assert 语句中的布尔条件为 false,那么正常的执行流程会被中断
assert 只在开发环境中有效,在生产环境中是无效的。
Flutter 中的 assert 只在 debug 模式中有效。
开发用的工具,例如 dartdevc 默认是开启 assert 功能。
其它的一些工具,例如 dart 和 dart2js,支持通过命令行开启 assert:—enable-asserts

  1. // dart 1.dart
  2. void main() {
  3. // assert(1); //Error: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
  4. // assert(1 >= 1); //无效
  5. }

注释

  1. void main() {
  2. // 单行注释
  3. /*
  4. 多行注释
  5. */
  6. // 文档注释,由两种写法:(///)(/** */)
  7. /// 我是一个单行文档注释
  8. /**
  9. * 我是多行的文档注释
  10. */
  11. // 在dart里面有 dartdoc 生成文档用的
  12. /// [a] 是一个变量
  13. /// [] 里面能放什么:类、方法、字段、顶级变量、函数、参数。
  14. var a = 1;
  15. print(a);
  16. }

在文档注释中,除非用中括号括起来,否则Dart编译器会忽略所有文本。
使用中括号可以引用类、方法、字段、顶级变量、函数、参数。
括号中的符号会在已记录的程序元素的词法域中进行解析。