Block
背景
- Block 是一个可以指定符号局部值的作用域结构,它隔绝了结构内部符号的值与外部对应符号可能预设的值. Block 实现了变量的动态作用域,这意味着局部符号的名字保持不变. 当局部符号有值时,使用该值;否则使用该符号在外围函数中的值(以此类推). Block 只局部化符号的值而不是替换它们.
- 相反,Module 实现的是词法作用域,这意味着每次调用都会创建局部变量的一个新的唯一副本,不会在任何其它外围函数或后续对 Module 的调用中使用.
- Block 通常比 Module 要快,所以当带作用域变量的函数需要被调用许多次时,使用 Block 可能更快. 在像 Do、Sum、Product 及 Table 这样的结构中会自动调用 Block 以局部化迭代变量的值. Block 可以嵌套使用.
- With 是另一个允许定义局部常量的作用域结构. 它实现了只读的词法作用域变量,且只替换作用域结构中不作为局部变量出现的符号. 和 Block 一样,With 比 Module 要快. 尽管普通的替换不保持作用域,但 With 允许在未求值表达式内进行替换,这样就保持了嵌套作用域.
- Block 结构内部(或外部)的多个表达式可用 CompoundExpression 组合在一起.
范例
打开所有单元关闭所有单元基本范例 (1)
应用 (2)
Wolfram Research (1988),Block,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Block.html.
文本
Wolfram Research (1988),Block,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Block.html.
CMS
Wolfram 语言. 1988. "Block." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Block.html.
APA
Wolfram 语言. (1988). Block. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Block.html 年