@mirascript/help 0.1.40 → 0.1.41

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.js CHANGED
@@ -9,9 +9,9 @@ export const KEYWORDS = Object.freeze({
9
9
  "continue": "`continue` 用于跳过本次循环剩余部分,进入下一次循环。\n\n```mira\nlet mut sum = 0;\nfor i in 1..5 {\n if i % 2 == 0 { continue; }\n sum += i;\n}\n// sum == 1 + 3 + 5\n```\n",
10
10
  "else": "`else` 用于 `if` 表达式,也可用作 `while` 和 `for` 循环的可选分支。\n\n---\n\n作为 `if` 表达式的分支\n\n```mira\nlet x = if false { 1 } else { 2 }; // 2\n```\n\n---\n\n作为循环的可选分支\n\n```mira\nlet mut i = 0;\nlet result = while i < 5 {\n i += 1;\n if i == 6 {\n // 使用 break 语句提前退出循环,并返回一个值\n break i * 2;\n }\n} else {\n // 当循环正常结束时执行\n 100\n};\n// result 的值是 100\n```\n",
11
11
  "false": "`false` 是布尔字面量,表示逻辑假。\n",
12
- "fn": "使用 `fn` 关键字定义一个函数或函数表达式。\n\n---\n\n定义一个简单的函数:\n\n```mira\nfn add(a, b) {\n return a + b;\n}\n```\n\n---\n\n定义一个变量,并使用函数表达式初始化:\n\n```mira\nlet multiply = fn(x, y) {\n return x * y;\n};\n```\n\n---\n\n当函数只有一个参数时,可以省略括号,并用 `it` 引用该参数。\n\n```mira\nfn square {\n return it * it;\n}\n```\n",
12
+ "fn": "使用 `fn` 关键字定义一个函数或函数表达式。\n\n---\n\n定义一个简单的函数:\n\n```mira\nfn add(a, b) {\n return a + b;\n}\n```\n\n---\n\n定义一个变量,并使用函数表达式初始化:\n\n```mira\nlet multiply = fn (x, y) {\n return x * y;\n};\n```\n\n---\n\n当函数只有一个参数时,可以省略括号,并用 `it` 引用该参数。\n\n```mira\nfn square {\n return it * it;\n}\n```\n",
13
13
  "for": "`for` 用于遍历可迭代对象。\n\n---\n\n遍历一个范围:\n\n```mira\nlet mut sum = 0;\nfor i in 1..3 { // 或者 1..<4\n sum += i;\n}\n// sum == 6\n```\n\n---\n\n遍历一个数组:\n\n```mira\nlet arr = [10, 20, 30];\nlet mut sum = 0;\nfor value in arr {\n sum += value;\n}\n// sum == 60\n```\n\n---\n\n遍历一个记录:\n\n```mira\nlet record = (a: 1, b: 2, c: 3);\nlet mut sum = 0;\nfor key in record {\n sum += record[key];\n}\n// sum == 6\n```\n",
14
- "global": "`global` 表示全局对象(全局命名空间)。通常用于读取全局变量或判断某个全局键是否存在。\n\n```mira\n// 访问全局变量\nglobal.some_name;\n\n// 动态访问全局变量\nglobal['some_name'];\n\n// 判断键是否存在\n'some_name' in global;\n```\n",
14
+ "global": "`global` 关键字用于读取全局变量或判断某个全局变量是否存在。\n\n---\n\n当变量名与局部变量冲突时,可以使用 `global` 关键字来访问全局变量。\n\n```mira\nlet some_name = 'shadow';\nsome_name; // 访问局部变量 'some_name'\nglobal.some_name; // 访问全局变量 'some_name'\n```\n\n---\n\n动态判断和访问全局变量:\n\n```mira\nfn get_global(name, fallback) {\n if name in global {\n global[name]\n } else {\n fallback\n }\n}\n```\n",
15
15
  "if": "`if` 用于 `if` 表达式或 `match` 表达式的守卫条件。\n\n---\n\n`if` 表达式根据条件选择分支。条件必须是 `boolean`。\n\n```mira\nlet x = if 1 > 0 { \"pos\" } else { \"neg\" };\n```\n\n---\n\n使用 `else if` 添加多个条件分支:\n\n```mira\nlet x = if 1 > 2 {\n \"greater\"\n} else if 1 == 2 {\n \"equal\"\n} else {\n \"less\"\n};\n```\n\n---\n\n在 `match` 表达式中使用 `if` 作为守卫条件:\n\n```mira\nlet num = 10;\nlet result = match num {\n case n if n % 2 == 0 { \"even\" }\n case n { \"odd\" }\n};\n// result 的值是 \"even\"\n```\n",
16
16
  "in": "`in` 用于“包含/存在”判断,以及 `for` 循环。\n\n---\n\n对于 `array` 类型,`in` 用于判断某个元素是否在数组中存在:\n\n```mira\nfn is_spring(month) {\n month in [3, 4, 5]\n}\n```\n\n---\n\n对于 `record` / `module` / `extern` 类型,`in` 用于判断某个键是否在容器中存在:\n\n```mira\nlet record = (a: 1, b: 2, c: 3);\nlet a_exists = 'a' in record; // true\n```\n\n---\n\n也可与 `global` 关键字结合使用,判断全局变量是否存在:\n\n```mira\nif 'my_global' in global {\n my_global += 1;\n}\n```\n\n---\n\n同时,`for` 循环也使用 `in`:\n\n```mira\nfor i in 1..3 {\n // i: 1, 2, 3\n}\n```\n",
17
17
  "inf": "`inf` 是正无穷大的 `number` 常量。\n\n```mira\ninf > 1e100; // true\n-inf < 0; // true\n```\n",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirascript/help",
3
- "version": "0.1.40",
3
+ "version": "0.1.41",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "description": "Help documentation for Mirascript core language.",
package/src/keyword/fn.md CHANGED
@@ -19,7 +19,7 @@ fn add(a, b) {
19
19
  定义一个变量,并使用函数表达式初始化:
20
20
 
21
21
  ```mira
22
- let multiply = fn(x, y) {
22
+ let multiply = fn (x, y) {
23
23
  return x * y;
24
24
  };
25
25
  ```
@@ -2,15 +2,28 @@
2
2
  token: 'global'
3
3
  ---
4
4
 
5
- `global` 表示全局对象(全局命名空间)。通常用于读取全局变量或判断某个全局键是否存在。
5
+ `global` 关键字用于读取全局变量或判断某个全局变量是否存在。
6
+
7
+ ---
8
+
9
+ 当变量名与局部变量冲突时,可以使用 `global` 关键字来访问全局变量。
6
10
 
7
11
  ```mira
8
- // 访问全局变量
9
- global.some_name;
12
+ let some_name = 'shadow';
13
+ some_name; // 访问局部变量 'some_name'
14
+ global.some_name; // 访问全局变量 'some_name'
15
+ ```
10
16
 
11
- // 动态访问全局变量
12
- global['some_name'];
17
+ ---
18
+
19
+ 动态判断和访问全局变量:
13
20
 
14
- // 判断键是否存在
15
- 'some_name' in global;
21
+ ```mira
22
+ fn get_global(name, fallback) {
23
+ if name in global {
24
+ global[name]
25
+ } else {
26
+ fallback
27
+ }
28
+ }
16
29
  ```