image.png
非常nice的3D车道线
// Define a function.
void printInteger(int aNumber) {
print('The number is $aNumber.'); // Print to console.
}
// This is where the app starts executing.
void main() {
var number = 42; // Declare and initialize a variable.
printInteger(number); // Call a function.
}
void 表示没有返回值。
int 内置数值类型。其他的诸如:string,list,bool等。
main()特殊的,必须的顶层方法,表示程序的开始。
var 声明变量。
int?
可以是整数,也可以为null
。如果我们知道表达式的计算结果从不为null,但Dart不允许这样,我们可以添加!
断言它不为null(如果为空则抛出异常)。例如:int x=nullableButNotNullInt!Object?
变量存储的是引用。
var name = 'Bob';
变量name包含了一个对值为bob的string 对象的引用。
未初始化的变量,包含了一个初始值为null的值。
我们不必在声明局部变量的地方对其进行初始化,但需要在使用它之前为其赋值。例如,以下代码是有效的,因为Dart可以在传递给print()时检测到lineCount为非空:
int lineCount;
if (weLikeToCount) {
lineCount = countLines();
} else {
lineCount = 0;
}
print(lineCount);
Dart 2.12添加了late修改器,它有两种用法:
通常,Dart的控制流分析可以在使用不可为空的变量之前检测其何时设置为非空值,但有时分析会失败。两种常见的情况是顶级变量和实例变量:Dart通常无法确定它们是否已设置,因此它不会尝试。
如果您确定某个变量在使用前已设置,但Dart不允许,则可以通过将该变量标记为late来修复错误:
late String description;
void main() {
description = 'Feijoada!';
print(description);
}
当我们将一个变量标记为延迟,但在其声明时对其进行初始化时,初始化器将在第一次使用该变量时运行。这种延迟初始化在以下几种情况下很方便:
// This is the program's only call to readThermometer().
late String temperature = readThermometer(); // Lazily initialized.
如果我们从未打算更改变量,则使用final或const代替var,或者除了类型之外。最终变量只能设置一次;常量变量是编译时常量。(Const变量隐式为最终变量。)
final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';
不能更改Final变量的值:
name = 'Alice'; // Error: a final variable can only be set once.
对于要成为编译时常量的变量,请使用const。如果常量变量位于类级别,请将其标记为静态常量。在声明变量时,将值设置为编译时常量,例如数字或字符串文字、常量变量或对常量进行算术运算的结果:
const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere
const关键字不仅仅用于声明常量变量。您还可以使用它来创建常量值,以及声明创建常量值的构造函数。任何变量都可以具有常数值。
var foo = const [];
final bar = const [];
const baz = []; // Equivalent to `const []`
我们不能修改const定义的变量的值:
baz = [42]; // Error: Constant variables can't be assigned a value.
本文分享自 JavaScript高级程序设计 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!