doc: update docs/dart.md
This commit is contained in:
parent
eb01adb655
commit
4b22796c36
75
docs/dart.md
75
docs/dart.md
@ -184,6 +184,79 @@ print(3 >= 3); // 打印: true - 大于或等于
|
|||||||
print(2 <= 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 变为 1;1 变为 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
|
```dart
|
||||||
enum Pet {dog, cat}
|
enum Pet {dog, cat}
|
||||||
Pet myPet = Pet.dog;
|
Pet myPet = Pet.dog;
|
||||||
switch(myPet){
|
switch(myPet) {
|
||||||
case Pet.dog:
|
case Pet.dog:
|
||||||
print('My Pet is Dog.');
|
print('My Pet is Dog.');
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user