第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go結(jié)構(gòu)中的無效遞歸類型

Go結(jié)構(gòu)中的無效遞歸類型

Go
jeck貓 2021-05-04 09:10:47
我是Go編程語言的新手,我已經(jīng)完成了創(chuàng)建和解釋器的任務(wù),但是遇到了以下問題:我想定義一個環(huán)境為: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)}但是我收到錯誤“無效的遞歸類型環(huán)境”。根據(jù)我的研究,我將父級更改為* Environment。但是現(xiàn)在,當(dāng)我需要創(chuàng)建一個環(huán)境類型為var的新環(huán)境時,會收到錯誤消息“無法將fun_Val.ds(類型為Environment)用作* Environment in field value”。我正在創(chuàng)建環(huán)境,如下所示:Environment{fun_Val.ds,fun_Val.param,exp.arg_exp.interp(env)}我試圖將這篇文章中的代碼量限制在一定范圍內(nèi),但是如果您需要更多代碼或有其他問題,請告訴我。
查看完整描述

2 回答

?
楊__羊羊

TA貢獻1943條經(jīng)驗 獲得超7個贊

您需要定義Environment為:


type Environment struct {

    parent *Environment // note that this is now a pointer

    symbol string

    value  RCFAEValue

}

否則,編譯器將無法確定環(huán)境結(jié)構(gòu)的大小。指針的大小是已知的,但是包含自身的東西有多大呢?(內(nèi)部結(jié)構(gòu)也包含自身,內(nèi)部內(nèi)部結(jié)構(gòu)也包含此類,等等。)


創(chuàng)建環(huán)境將如下所示:


Environment{&fun_Val.ds, fun_Val.param, exp.arg_exp.interp(env)}


查看完整回答
反對 回復(fù) 2021-05-10
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

我希望這可以解決問題:

Environment{&fun_Val.ds,fun_Val.param,exp.arg_exp.interp(env)}

(這&是Go中運算符的“地址”。)


查看完整回答
反對 回復(fù) 2021-05-10
  • 2 回答
  • 0 關(guān)注
  • 301 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號