0%

Dart 编程语言说明 - 01

命令行

1
2
3
4
5
6
7
8
9
10
11
12
13

$dart help

=================================================
analyze Analyze the project's Dart code.
compile Compile Dart to various formats.
create Create a new project.
format Idiomatically format Dart source code.
migrate Perform a null safety migration on a project or package.
pub Work with packages.
run Run a Dart program.
test Run tests in this package.
=================================================

创建Dart命令行工程

1
2
3
4
$dart create -t console-full projectName
$cd projectName
$dart run projectName
$dart compile exe bin/projectName.dart

整数除法

5 ~/ 2 == 2

Null-aware 操作

Operators Examples Descriptions
?. User = UserEntity**?.**user 如果UserEntity == null,User 设置为null,短路操作
?? age == User.age**??**30 如果User.age为空,则返回30作为默认值
??= x = 3;
x ??= 5;
如果x 为空,则将其设置为5,否则不赋值

命名变量参数

Dart通过如下方式支持命名变量参数

1
2
3
4
5
6
7
8

void testFunction( {String message, int code} ) { ... }

//Invokes
testFunction(message: "Hello", code: 111);

//默认情况下,参数命名是可选的,但可以通过引入meta package强制使用Named Parameters调用函数:

函数参数默认值

1
void foo ( int x, [int y=3]) {...}

var, const, final, static 和 dynamic

定义 类型 说明
var keyword 类型通过后期赋值确定,一旦确定类型则类型不可变更,但值可以改变。
const keyword 静态数据,必须在编译时即已经声明,完全不可变,且其不可变定义是传递的,比如 声明一个const数组,则const数组中的每一个值均无法改变。
final keyword 指向数据不可变。只有直接关联的数据是不能被改变的,不可变定义不传递,相对const较弱,近似于java的final
dynamic type Dart所有对象的基类型,多数情况不需要显式的声明使用。
static keyword 用来修饰类的成员,指相应方法在类实例上使用而不是类对象上。近似于java的static。

参考网站

dynamic 可以用在定义类型和定义变量上,但var只能用在定义变量。比如:

1
2
var any = 'String';
dynamic any = 'String';

均是合法的,但

1
Map<String, dynamic> any;

不可以使用var替换。

Welcome to my other publishing channels