我对这句话很困惑"如果标识符被绑定到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)
}
}
}
答案 0 :(得分:0)
在不了解更多关于上下文的情况下很难分辨,但也许您应该在环境中查找标识符的名称,而不是<div *ngIf="data?.name">
实例?
使用Identifier
语句肯定会更清楚,如下所示:
match