@mirascript/help 0.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +79 -0
- package/dist/index.js +78 -0
- package/package.json +21 -0
- package/scripts/build.js +165 -0
- package/src/keyword/and.md +26 -0
- package/src/keyword/break.md +32 -0
- package/src/keyword/case.md +16 -0
- package/src/keyword/const.md +10 -0
- package/src/keyword/continue.md +14 -0
- package/src/keyword/effect.md +6 -0
- package/src/keyword/else.md +32 -0
- package/src/keyword/false.md +5 -0
- package/src/keyword/finally.md +6 -0
- package/src/keyword/fn.md +35 -0
- package/src/keyword/for.md +43 -0
- package/src/keyword/global.md +16 -0
- package/src/keyword/handle.md +6 -0
- package/src/keyword/if.md +40 -0
- package/src/keyword/in.md +44 -0
- package/src/keyword/inf.md +10 -0
- package/src/keyword/is.md +11 -0
- package/src/keyword/let.md +11 -0
- package/src/keyword/loop.md +13 -0
- package/src/keyword/match.md +18 -0
- package/src/keyword/mod.md +6 -0
- package/src/keyword/mut.md +25 -0
- package/src/keyword/nan.md +10 -0
- package/src/keyword/nil.md +11 -0
- package/src/keyword/not.md +26 -0
- package/src/keyword/op.md +6 -0
- package/src/keyword/or.md +26 -0
- package/src/keyword/perform.md +6 -0
- package/src/keyword/pub.md +6 -0
- package/src/keyword/resume.md +6 -0
- package/src/keyword/return.md +12 -0
- package/src/keyword/true.md +5 -0
- package/src/keyword/try.md +6 -0
- package/src/keyword/type.md +10 -0
- package/src/keyword/underscore.md +16 -0
- package/src/keyword/use.md +6 -0
- package/src/keyword/where.md +6 -0
- package/src/keyword/while.md +12 -0
- package/src/operator/arrow.md +6 -0
- package/src/operator/assign.md +23 -0
- package/src/operator/asterisk.md +9 -0
- package/src/operator/asterisk_assign.md +11 -0
- package/src/operator/brace.md +26 -0
- package/src/operator/bracket.md +32 -0
- package/src/operator/caret.md +10 -0
- package/src/operator/caret_assign.md +11 -0
- package/src/operator/colon.md +29 -0
- package/src/operator/colon_colon.md +10 -0
- package/src/operator/comma.md +13 -0
- package/src/operator/dot.md +15 -0
- package/src/operator/equal.md +43 -0
- package/src/operator/exclamation.md +23 -0
- package/src/operator/greater.md +10 -0
- package/src/operator/greater_equal.md +9 -0
- package/src/operator/half_open_range.md +12 -0
- package/src/operator/less.md +9 -0
- package/src/operator/less_equal.md +9 -0
- package/src/operator/logical_and.md +9 -0
- package/src/operator/logical_and_assign.md +11 -0
- package/src/operator/logical_or.md +9 -0
- package/src/operator/logical_or_assign.md +11 -0
- package/src/operator/minus.md +10 -0
- package/src/operator/minus_assign.md +11 -0
- package/src/operator/not_equal.md +10 -0
- package/src/operator/null_coalescing.md +10 -0
- package/src/operator/null_coalescing_assign.md +14 -0
- package/src/operator/paren.md +39 -0
- package/src/operator/percent.md +9 -0
- package/src/operator/percent_assign.md +11 -0
- package/src/operator/plus.md +10 -0
- package/src/operator/plus_assign.md +11 -0
- package/src/operator/question.md +9 -0
- package/src/operator/question_colon.md +12 -0
- package/src/operator/semicolon.md +13 -0
- package/src/operator/slash.md +9 -0
- package/src/operator/slash_assign.md +11 -0
- package/src/operator/spread_range.md +31 -0
- package/src/operator/tilde_equal.md +24 -0
- package/src/operator/tilde_not_equal.md +10 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
token: ['(', ')']
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
`( )` 用于分组表达式、函数调用参数列表,以及记录字面量。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
分组表达式,控制计算顺序:
|
|
10
|
+
|
|
11
|
+
```mira
|
|
12
|
+
let result = (1 + 2) * 3; // 先计算 1 + 2,然后乘以 3
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
函数声明和调用:
|
|
18
|
+
|
|
19
|
+
```mira
|
|
20
|
+
fn add(a, b) { a + b }
|
|
21
|
+
let sum = add(1, 2);
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
记录字面量:
|
|
27
|
+
|
|
28
|
+
```mira
|
|
29
|
+
let record = (a: 1, b: 2);
|
|
30
|
+
let empty = (); // 空记录
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
对于省略键名的单元素记录,必须添加逗号以区别于分组表达式。
|
|
36
|
+
|
|
37
|
+
```mira
|
|
38
|
+
let single = (1,)
|
|
39
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
token: '..'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
`..` 表示闭区间范围,或在数组/记录字面量及函数调用中表示展开。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
表示数组字面量、切片和循环的范围:
|
|
10
|
+
|
|
11
|
+
```mira
|
|
12
|
+
let arr = [1..3]; // arr = [1, 2, 3]
|
|
13
|
+
let slice = arr[0..1]; // slice = [1, 2]
|
|
14
|
+
|
|
15
|
+
for i in 1..3 {
|
|
16
|
+
// i 依次为 1, 2, 3
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
展开数组/记录或函数调用:
|
|
23
|
+
|
|
24
|
+
```mira
|
|
25
|
+
let arr = [1, ..[2, 3]]; // arr = [1, 2, 3]
|
|
26
|
+
let rec1 = (a: 1, ..(b: 2, c: 3)); // rec1 = (a: 1, b: 2, c: 3)
|
|
27
|
+
// 同名键以最后一个为准
|
|
28
|
+
let rec2 = (..(1, 2), ..(3, 4, 5)); // rec2 = (0: 3, 1: 4, 2: 5)
|
|
29
|
+
|
|
30
|
+
let result = sum(..[1, 2, 3]); // 等同于 sum(1, 2, 3)
|
|
31
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
token: '=~'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
`=~` 是“近似相等”,用于数值容差比较和字符串归一化比较。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
对于 `number` 类型,当两个操作数的相对误差**或**绝对误差小于 `1e-15` 时,返回 `true`,否则返回 `false`。
|
|
10
|
+
|
|
11
|
+
如果其中一个操作数为 `number` 类型,另一个操作数在比较前也会自动转换为 `number` 类型。
|
|
12
|
+
|
|
13
|
+
```mira
|
|
14
|
+
0.1 + 0.2 =~ 0.3; // true
|
|
15
|
+
1 =~ "1"; // true
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
对于 `string` 类型,`=~` 运算符进行大小写不敏感的[正规化(NFC)](https://unicode.org/reports/tr15/)比较。
|
|
21
|
+
|
|
22
|
+
```mira
|
|
23
|
+
"café" =~ "CAFÉ"; // true
|
|
24
|
+
```
|