doc: update docs/dart.md

This commit is contained in:
jaywcjlove 2024-06-25 20:12:58 +08:00
parent eb01adb655
commit 4b22796c36

View File

@ -184,6 +184,79 @@ print(3 >= 3); // 打印: true - 大于或等于
print(2 <= 3); // 打印: true - 小于或等于
```
### 运算符优先级示例
```dart
// 括号可以提高可读性。
if ((n % i == 0) && (d % i == 0)) ...
// 虽然难以阅读,但等效。
if (n % i == 0 && d % i == 0) ...
```
### 位运算符和移位运算符
操作符 | 含义
:-|-
`&` | 与AND
`\|` | 或OR
`^` | 异或XOR
`~expr` | 一元位补码<br>_(0 变为 11 变为 0)_
`<<` | 左移
`>>` | 右移
`>>>` | 无符号右移
<!--rehype:className=left-align-->
----
```dart
final value = 0x22;
final bitmask = 0x0f;
// 与AND
assert((value & bitmask) == 0x02);
// 非与AND NOT
assert((value & ~bitmask) == 0x20);
// 或OR
assert((value | bitmask) == 0x2f);
// 异或XOR
assert((value ^ bitmask) == 0x2d);
assert((value << 4) == 0x220); // 左移
assert((value >> 4) == 0x02); // 右移
```
### 级联表示法
级联 (.., ?..) 允许您对同一对象进行一系列操作。除了访问实例成员之外,您还可以调用同一对象的实例方法。这通常可以节省您创建临时变量的步骤,并允许您编写更流畅的代码。考虑以下代码:
```dart
var paint = Paint()
..color = Colors.black
..strokeCap = StrokeCap.round
..strokeWidth = 5.0;
```
示例相当于以下代码:
```dart
var paint = Paint();
paint.color = Colors.black;
paint.strokeCap = StrokeCap.round;
paint.strokeWidth = 5.0;
```
`?...`开头可确保不会对该空对象进行任何级联操作。
```dart
querySelector('#confirm') // 获取一个对象
?..text = 'Confirm' // 使用它的成员
..classes.add('important')
..onClick.listen((e) => {
window.alert('Confirmed!')
})
..scrollIntoView();
```
控制流:条件
------
@ -206,7 +279,7 @@ if(age < 18){
```dart
enum Pet {dog, cat}
Pet myPet = Pet.dog;
switch(myPet){
switch(myPet) {
case Pet.dog:
print('My Pet is Dog.');
break;