Я новичок в языке программирования Go, и у меня есть задание на создание и интерпретацию, но я сталкиваюсь со следующей проблемой:
Я хочу определить среду как:
type Environment struct{
parent Environment
symbol string
value RCFAEValue
}
func (env Environment) lookup(lookupSymbol string) RCFAEValue{
if lookupSymbol == env.symbol{
return env.value
} //if parent != nill {
return env.parent.lookup(lookupSymbol)
}
Но я получаю ошибку "Недопустимый рекурсивный тип Environment".На основании моих исследований я сменил родителя на тип * Environment.Но теперь, когда мне нужно создать новую среду с переменным типом Environment, он получает сообщение об ошибке «не могу использовать fun_Val.ds (тип Environment) в качестве типа * Environment в значении поля».Я создаю среду следующим образом:
Environment{fun_Val.ds,fun_Val.param,exp.arg_exp.interp(env)}
Я пытаюсь ограничить количество кода в этом посте, но если вам нужно больше или у вас есть другие вопросы, пожалуйста, дайте мне знать.