我正在学习如何使用ractive并且无法解决问题,代码在以下jsfiddle.
我正在做的是对队列的计数器(数组中的最后一个对象是当前人):1.显示当前人的队列号的计数器2.显示队列大小的计数器
A)工作正常,但它是逻辑膨胀所以我试图将它转换为一个单独的变量,如B)所示,但它根本不更新.
我在代码中放置了一个观察者,以观察队列变量是否有任何变化.我希望每次点击"跳过当前人"或"删除当前人"时都会显示警报,但警报仅在我第一次加载页面时显示.
ractive.observe({
'queue.0.queueNo': alert('here')
});
Run Code Online (Sandbox Code Playgroud) 我遇到了这种非常特殊的行为,让我难以忍受了一段时间.我在下面的一个简单片段中重新创建了它,代码从Scala包装器中取出.
scala> def a = {
| implicit val u = null
| val x: Int = List(1,2,3).map(_.toString)
| }
a: Unit
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,即使我知道val x的类型是List [String],也没有抛出错误.我可以将x的类型更改为Int,Long等,它将继续编译.
但是,当我添加显式状态为隐式值的类型时,如下例所示,编译器按预期运行并抛出错误.
scala> def a = {
| implicit val u: Any = null
| val x: Int = List(1,2,3).map(_.toString)
| }
<console>:10: error: type mismatch;
found : List[String]
required: Int
Run Code Online (Sandbox Code Playgroud)
有没有其他人经历过这个或有任何见解为什么会发生这种情况?