Mathematica的赋值运算符与输出
在一开始接触Mathematica的时候,对它的理解可能更加接近解释型语言,比如Python一类的,输入和输出是确定对应的。
Mathematica里的赋值运算符有两种,=
和:=
。前者就是传统的赋值,后者叫做“延时赋值”,即在使用到被赋值变量时才计算其对应的值。一开始并没有仔细看文档,只是发现两者的区别是在句尾不加分号的时候,前者会输出计算值,后者不会,以为区别在这里。。但是这是错误用法
而后在进行高级运用,涉及到了带有循环编程的时候,程序就开始报错了,说递归超过最大深度。在简单的尝试后,发现将:=
替换成=
问题就解决了,这才意识到自己之前对这两个操作符的理解可能有误。
简要总结:
=
赋值符用于立即赋值,适合最为广泛的面向过程编程;
:=
用于延时赋值,对于函数的定义需要使用这个符号(显然传入了自变量值才能计算出结果来嘛),可能更多用于函数式编程,一般的数值计算不要轻易用这个符号;
;
加在句尾,可用于在一行做多条语句的分隔符,同时在句尾添加了分号的语句将不会产生输出,与Matlab的分号抑制输出功能相同。