Scala绑定检查

时间:2018-04-26 06:06:21

标签: scala

我对这句话很困惑"如果标识符被绑定到thunk或文本"。我该怎么检查?我有代码,其中identifier是表达式的扩展,而thunk和text是类型值。我在这里有这个代码但是当我运行它时,我得到一个stackoverflow错误。

package expression
import context._
import value._

case class Identifier(val name: String) extends Expression{ 
  override def toString = name
  /*def execute(env: Environment): Value = {
    env(this)

  }*/

  def execute(env:Environment): Value = 
  {
    val envThis = env(this)//wrong here
    println(this.getClass)

    if(envThis.isInstanceOf[Text])   
    {
      //println(envThis.asInstanceOf[Text].body.getClass) identifier class type
      envThis.asInstanceOf[Text].body.execute(env) //wrong here
    }
    else if(envThis.isInstanceOf[Thunk])
    {
      envThis.asInstanceOf[Thunk].apply()
    }
    else
    {
      env(this)
    }
  }
}

1 个答案:

答案 0 :(得分:0)

在不了解更多关于上下文的情况下很难分辨,但也许您应该在环境中查找标识符的名称,而不是<div *ngIf="data?.name"> 实例?

使用Identifier语句肯定会更清楚,如下所示:

match