Dart-基础1
Dart 环境准备
1. 安装 Dart
Dart3 稳定版即将发布,可先下载测试版或开发版本
配置环境变量
查看版本
2. VS Code 安装 Dart 插件
3. VS Code 安装 Code Runner 插件
一个简单的Dart程序
// 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.
}
main
方法作为程序的入口;
//
表示注释;
void
代表无返回值;
var、int
声明变量;
print、printInteger
输出;
重要概念
- 一切皆对象,一切对象都是类的实例,一切类都继承
Object
类 - Dart 是强类型语言,但是也可自动推断类型
- 空安全:Null Safefy,变量不能为空,用
?
标记的类型可以为空 - Dart 虽然是强类型语言,但也保留了关键字
Object
或Object?
、dynamic
、var
提供类型转换
- Dart 支持泛型,例如
List<int>
- Dart 支持顶级函数
main()
,绑定到类或对象的函数(静态方法、实例方法),局部函数 - Dart 支持顶级变量,绑定到类或对象的变量(静态变量、实例变量),实例变量也就是字段或属性
- 下划线
_
开头的方法或属性,是私有方法或私有属性
Dart 变量
创建并初始化一个变量
// 类型不可转换
var name = 'Bob';
// 类型可转换
Object name = 'Bob';
// 类型不可转换
String name = 'Bob';
初始化值
// 可为null类型,未初始化的变量的初始值为null
int? count;
assert(count == null);
late变量
可用于:
- 声明一个不可为null类型的,先声明后初始化的变量
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
修饰的变量值不可修改
final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';
const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere
差异
final | 可以先声明后赋值,且只能赋值一次 | 在运行时取值 | 不可修改对象,但可修改属性 | 只可用于修饰变量 | 相同内容创建不同对象 |
const | 声明时必须赋值 | 在编译时取值 | 不可修改对象和属性 | 也可修饰常量构造函数 | 相同内容指向同一对象 |
const
还可用来创建常量值
var foo = const [];
final bar = const [];
const baz = []; // Equivalent to `const []`
内置类型
int | 64位整型 | 可与String相互转换,可算术运算、按位运算 |
double | 64位浮点型 | |
String | 字符串类型 | 可以单引号、双引号、三引号 |
bool | 布尔类型 | true/false |
List | List集合 | 有序,可重复,支持泛型 |
Set | Set集合 | 无序,不可重复,支持泛型 |
Map | key-value | 键值对,支持泛型 |
Dart 运算符
算术运算符 | 关系运算符 | 逻辑运算符 | 赋值运算符 | 按位运算符 | |||||||||||||
+ | 加 | / | 除 | == | 等于 | != | 不等于 | ! | 取反 | = | 简单赋值 | << | 算术左移 | ~ | 按位非 | & | 按位与 |
- | 减 | ~/ | 取整 | > | 大于 | >= | 大于等于 | && | 并且 | ??= | 为空则赋值 | >> | 逻辑右移 | ^ | 按位异或 | ||
* | 乘 | % | 取模 | < | 小于 | <= | 小于等于 | || | 或者 | += | 复合赋值 | >>> | 算术右移 | | | 按位或 |
函数
在Dart中,函数也是对象,可以作为变量或参数