Skip to content

Commit f088a7c

Browse files
committed
feat: selector advanced
1 parent 1dd1445 commit f088a7c

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

docs/guide/selector.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -321,14 +321,16 @@
321321

322322
- 一般选择器 -> `A + B``(A + B)`
323323

324-
- 逻辑表达式 -> `(A + B) || (M > N)`, 表示匹配节点满足 `A + B``M > N`
324+
- 逻辑或表达式 -> `(A + B) || (M > N)`, 表示匹配节点满足 `A + B``M > N`
325325

326-
匹配结果总是优先取 右侧选择器表达式 的目标节点, 如果满足 `M > N` 那就是 `N`. 不满足 `M > N` 时, 如果是 `A + B` 那就是 `B`, 当然也可以在内部使用 `@` 自定义目标节点
326+
匹配结果遵循 `||` 的短路原则, 优先判断左侧的 `A + B`, 如果满足 `A + B` 那就是 `B`. 不满足 `A + B` 时, 判断右侧表达式, 如果满足 `M > N` 那就是 `N`, 当然也可以在内部使用 `@` 自定义目标节点
327327

328-
同理 `(A + B) && (M > N)`, 表示匹配节点满足 `A + B``M > N`, 结果为 `N`
328+
- 逻辑且表达式 -> `(A + B) && (M > N)`, 表示匹配节点满足 `A + B``M > N`, 结果取右侧表达式结果, 结果为 `N`, 当然也可以在内部使用 `@` 自定义目标节点
329329

330330
- 取反表达式 -> `!(A + B)`, 表示匹配节点应不满足 `A + B`, 需要注意的是 `!(@A + B)` 中的 `@` 是无效的, 它的匹配结果只能是末尾节点 `B`
331331

332+
此外 逻辑且表达式 的优先级更高, 即 `(A + B) || (C + B) && (M > N)` 等价于 `(A + B) || ((C + B) && (M > N))`
333+
332334
## 示例 {#example}
333335

334336
```txt

0 commit comments

Comments
 (0)