RxScala在工作表中和编译后的行为不同

RxScala在工作表中和编译后的行为不同,scala,frp,rx-scala,Scala,Frp,Rx Scala,我在玩RxScala和scala工作表中的主题。但奇怪的事情发生了。 正如我们所看到的,订阅c还获取数字并输出它们。之后,我发现订阅c是var而不是val。因此,我更改了declare。并获得以下信息 这个是正确的。因此,我将这些代码复制到一个主函数并运行它。有趣的是,无论c是否为val,输出都与第二张图片相同 为什么会这样?工作表中运行的程序与编译后运行的程序不同,即使使用相同的代码?我在windows中使用intelliJ,Rxscala为0.25.0。对于编译,intelliJ对工作表

我在玩RxScala和scala工作表中的主题。但奇怪的事情发生了。

正如我们所看到的,订阅c还获取数字并输出它们。之后,我发现订阅c是var而不是val。因此,我更改了declare。并获得以下信息

这个是正确的。因此,我将这些代码复制到一个主函数并运行它。有趣的是,无论c是否为val,输出都与第二张图片相同


为什么会这样?工作表中运行的程序与编译后运行的程序不同,即使使用相同的代码?

我在windows中使用intelliJ,Rxscala为0.25.0。对于编译,intelliJ对工作表进行一些转换,例如包装在对象中并向VAL添加惰性。我确信这是造成差异的原因,但我不能准确地指出到底发生了什么。