计算 rhs 并把结果赋给 lhs. lhs 将总是被 rhs 替换.

计算 ,并将结果赋给对应的 .


  • lhs 可以是任何表达式,包括一个模式.
  • 是一个模式的典型赋值. 注意, 出现在左边,而不是右边.
  • 形如 的赋值建立与符号 f 相联系的变换法则上.
  • 与一个特定符号相联系的不同规则通常按给出的顺序放置. 如果给出的一个新规则确实比存在的规则更具体,它当然放在它们之前. 这些规则在被使用时将按顺序被检测. »
  • 具有相等 lhs 的新赋值将屏蔽旧的赋值. »
  • 您可以用 ?fDefinition[f] 查看与符号 f 相关的所有赋值.
  • 如果要对具有像 FlatOrderless 属性的函数赋值,你必须在赋值之前确保要设置这些属性.
  • Set 具有属性 HoldFirst.
  • 如果 lhs 具有 形式,则计算 args. »
  • 对某些函数赋予 时,该赋值将自动与 f 相联系,而不是 s. 这些函数包括:AttributesDefaultFormatMessageNameMessagesNOptions. »
  • 当它出现在一个未计算的符号形式中时,Set 被视为一个范围结构,以使得嵌套出现的变量在必要时被重命名. »
  • 返回 rhs,即使因为某些原因该指定的赋值不能执行.
  • 某些类似 $RecursionLimit 的全局变量只能被赋予特定的范围或值的类型.


  • Set is a function that evaluates and assigns an expression to be the value of a variable. The expression is commonly represented using the shorthand syntax . After Set is evaluated, lhs is replaced by rhs whenever it appears. Depending on the form of lhs, the result is stored as in the associated OwnValues, DownValues, or a specialized data structure.
  • Set often contains patterns on the lhs that are assigned transformed values as indicated on the rhs, e.g., . evaluates rhs immediately, so in situations where rhs should be evaluated only after the assignment is made, SetDelayed (written in shorthand as ) should be used instead.
  • The assignments associated with a given symbol can be seen using Definition[f]. Individual assignments may be removed from a symbol using Unset; Clear and ClearAll remove all definitions at once.