主入口函数
任何应用都必须有一个顶级 main()
函数,作为应用服务的入口。main()
函数返回值为空,参数为一个可选的 List<String>
。
void
定义main函数为空(虽然默认为空,可以不写void,尽量还是写完整)
void main() {
var a = 1;
print(a);
}
参数:
// 入口函数的参数
void main(List<数据类型> arguments){
}
示例:
// 定义一个集合
void main(List<String> arguments) {
print(arguments); //[]
}
// 命令行传参(字符串)
// dart run 1.dart 参数1 参数2
// dart 1.dart a b
void main(List<String> arguments) {
print(arguments); //[a, b]
print(arguments[0]); //a
print(arguments.length); //2
}
打印输出
该方法接收一个参数(任意对象),并输出显示这个对象的字符串值(由toString()返回)到控制台。
void main() {
var a = 1;
print(a); //1
print({'age': 18}); //{a: 1}
}
assert
该方法接收的是判断条件,如果 assert 语句中的布尔条件为 false,那么正常的执行流程会被中断
assert 只在开发环境中有效,在生产环境中是无效的。
Flutter 中的 assert 只在 debug 模式中有效。
开发用的工具,例如 dartdevc 默认是开启 assert 功能。
其它的一些工具,例如 dart 和 dart2js,支持通过命令行开启 assert:—enable-asserts
// dart 1.dart
void main() {
// assert(1); //Error: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
// assert(1 >= 1); //无效
}
注释
void main() {
// 单行注释
/*
多行注释
*/
// 文档注释,由两种写法:(///)(/** */)
/// 我是一个单行文档注释
/**
* 我是多行的文档注释
*/
// 在dart里面有 dartdoc 生成文档用的
/// [a] 是一个变量
/// [] 里面能放什么:类、方法、字段、顶级变量、函数、参数。
var a = 1;
print(a);
}
在文档注释中,除非用中括号括起来,否则Dart编译器会忽略所有文本。
使用中括号可以引用类、方法、字段、顶级变量、函数、参数。
括号中的符号会在已记录的程序元素的词法域中进行解析。