Forgot password?
 Create new account
View 105|Reply 2

作用域

[Copy link]

3148

Threads

8489

Posts

610K

Credits

Credits
66148
QQ

Show all posts

hbghlyj Posted at 2025-3-26 10:55:40 |Read mode
作用域(scope)是当前的执行上下文,在其中的值和表达式“可见”(可被访问)。如果一个变量或表达式不在当前的作用域中,那么它是不可用的。作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少变量冲突。对象的作用域为他所在的最近的一对花括号内。

像其他编程语言中的作用域,不同之处在于 TeX 中的机制更加强大。大多数在组内进行的赋值是该组的局部变量,除非明确指示为全局变量;在组外,旧值会被恢复(非常类似于 Pascal)。如果我们输入以下示例:

       \def\anumber{42}
       \anumber    % 是 42
        {
         \def\anumber{43}
         \def\b{2}
         \anumber  % 是 43
        }
       \anumber    % 是 42

宏 anumber 在组内和组外会有不同的值。关于分组以及区分局部和全局定义,有许多相关的命令。

3148

Threads

8489

Posts

610K

Credits

Credits
66148
QQ

Show all posts

 Author| hbghlyj Posted at 2025-3-26 11:09:53
有时需要跳读数学文章时,看见变量 $a$,需要花很久才找它的定义在哪,因为字母 $a$ 在很多英文单词中出现。而如果找哪里用到了该变量 $a$ 就需要更久了

如果在编写时遵循“需要定义的变量都在TeX中定义macro来表示”,若在 TeX 定义了 \def\uniqueName{a} 就能通过在源码搜索 \def\uniqueName 来找到定义出现的位置,而且还能避免未定义变量,而且还能避免由修订导致的前后文用了不同的变量名:因为修改变量名时,只修改这一处就够了

3148

Threads

8489

Posts

610K

Credits

Credits
66148
QQ

Show all posts

 Author| hbghlyj Posted at 2025-3-26 11:19:11

手机版Mobile version|Leisure Math Forum

2025-4-20 11:46 GMT+8

Powered by Discuz!

× Quick Reply To Top Return to the list