diff --git a/skills/tsl-syntax-reference/references/03_values_and_literals.md b/skills/tsl-syntax-reference/references/03_values_and_literals.md index 15bc51cc..92ba5e39 100644 --- a/skills/tsl-syntax-reference/references/03_values_and_literals.md +++ b/skills/tsl-syntax-reference/references/03_values_and_literals.md @@ -164,7 +164,7 @@ C ### 字符串边界规则 - + 原始字符串 `%%` 的空白分隔、标识符和多行: @@ -303,6 +303,12 @@ writeLn(b[1] = "1"); - 说明二进制缓冲区的 `[]` 下标从 `0` 开始 - 也说明二进制缓冲区项可以直接按单字节读写 +### 字符串子串读写 + + + +字符串子串统一用 `s[start:end]` 区间访问,`end` 包含在结果里;同一形态既能读取,也能替换、删除和插入。 + 字符串子串读取: 代码块身份:可直接照写示例 @@ -398,7 +404,7 @@ A=1 B=2.34 C=AAA ### 字符串 `like` 模式匹配 - + `like` 用于判断字符串是否符合指定模式(支持通配符和正则表达式): @@ -510,6 +516,7 @@ items := array(1, 2, 3); - 用 `s[0]` 访问字符串首字符。 - 误以为 `array(...)` 只能写顺序数组,不能写字符串键表。 - 误以为字符串区间和数组一样从 `0` 开始。 +- 把字符串区间当成数组切片式的半开区间;`s[1:3]` 返回 `ABC` 而不是 `AB`,结束位会被包含进结果,正向示例见本页“字符串子串读写”。 - 把 `s[index:0] := ...` 误解成“替换到第 0 位”。 - 把二进制缓冲区也按字符串的 `1` 基下标去理解。 - 在普通字符串示例里默认切到原始字符串、宽串 / UTF8 前缀、字符码或编码转换,却没有按本页字符串边界规则确认。 @@ -531,18 +538,3 @@ writeLn(s[0]); ```text String index out of bounds ``` - -代码块身份:可直接照写示例 - -```tsl -s := "ABCDE"; -writeLn(s[1:3]); -``` - -不要把上面这个区间访问类比成数组切片的半开区间。按文档输出,它返回 `ABC`,不是 `AB`;字符串区间的结束位会被包含进结果。 - -代码块身份:输出片段 - -```text -ABC -``` diff --git a/skills/tsl-syntax-reference/references/07_control_flow.md b/skills/tsl-syntax-reference/references/07_control_flow.md index 015adcb3..b70e5cc0 100644 --- a/skills/tsl-syntax-reference/references/07_control_flow.md +++ b/skills/tsl-syntax-reference/references/07_control_flow.md @@ -305,7 +305,7 @@ mid ### `try ... except` - + 代码块身份:可直接照写示例 diff --git a/skills/tsl-syntax-reference/references/08_objects_and_classes.md b/skills/tsl-syntax-reference/references/08_objects_and_classes.md index 594e010f..ad011baf 100644 --- a/skills/tsl-syntax-reference/references/08_objects_and_classes.md +++ b/skills/tsl-syntax-reference/references/08_objects_and_classes.md @@ -59,7 +59,7 @@ ### 最小类与声明位置 - + 最短类骨架: @@ -897,7 +897,7 @@ end; ### 重载、继承与析构 - + `overload` 方法: diff --git a/skills/tsl-syntax-reference/references/21_matrix_deep_dive.md b/skills/tsl-syntax-reference/references/21_matrix_deep_dive.md index d17a0837..5ee3fbb0 100644 --- a/skills/tsl-syntax-reference/references/21_matrix_deep_dive.md +++ b/skills/tsl-syntax-reference/references/21_matrix_deep_dive.md @@ -656,9 +656,9 @@ writeLn(a[0][0]); - `:*=`、`:/=`、`:\=`、`:^=` 分别是矩阵乘、除、左除、乘方的复合赋值形式 - `a :*= b` 等价于 `a := a :* b` -### 基础函数的矩阵广播与异常处理参数 +### 基础函数的矩阵广播与无效输入替换参数 - + 多参数基础函数支持逐参数广播: