在受监视的.bind
定义中的Vars
上调用Binding
会导致奇怪的行为。新的绑定仅在初始化时更新一次,而在更新Vars
内容之后则不会更新。
例如,如果我这样做:
private val test: Vars[Int] = Vars(1,2,3,4)
Binding(test.bind match{case newd => println("TESTS DATAS has changed: " + newd)}).watch
test.value.append(1111)
然后,我只有一条输出线(而我应该有两条):
测试数据已更改:缓冲区(1、2、3、4)
有关完整的工作示例,请参见此scalafiddle: https://scalafiddle.io/sf/0PkkLPE/1
我尝试了不同的选择,例如首先使用Binding
转换为.all
,但这并没有改变。也许,我对Vars
并不了解,但是与Var
却不太相符。