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

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

從編譯器的角度看,Expression、Statement、Declaration 有什么區(qū)別?

從編譯器的角度看,Expression、Statement、Declaration 有什么區(qū)別?

Go
慕哥6287543 2021-08-30 15:04:00
我在這里瀏覽 ast.go 的 Go 源代碼,有 3 種類型的接口,即表達式、語句和聲明。但僅憑源代碼我無法弄清楚它們之間的區(qū)別。 我能弄清楚的是表達式導(dǎo)致一個可以分配或比較或用作參數(shù)的對象,而語句是一些像 if-else 這樣的流程控制或 for 循環(huán)。但我發(fā)現(xiàn)了一些定義,比如    // An IncDecStmt node represents an increment or decrement statement.    IncDecStmt struct {            X      Expr            TokPos token.Pos   // position of Tok            Tok    token.Token // INC or DEC    }不應(yīng)該是表達式嗎?我很困惑如何區(qū)分表達式和語句,有什么規(guī)則嗎?
查看完整描述

2 回答

?
哈士奇WWW

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

該Golang規(guī)范使用這些術(shù)語:

  • 表達式:通過將運算符和函數(shù)應(yīng)用于操作數(shù)來指定值的計算。

  • 語句:控制執(zhí)行

  • 聲明(和范圍):將非空標識符綁定到常量、類型、變量、函數(shù)、標簽或包

IncDecStmt被指定為

IncDecStmt = Expression ( "++" | "--" ) .

"++" 和 "--" 語句通過無類型常量 1 遞增或遞減它們的操作數(shù)。

它使用一個表達式,但仍然是一個語句(不產(chǎn)生新值)。

注意:無類型常量是當你聲明一個常量而不明確提及它的類型時:

i := 0 # int8? uint8? int16? ...

無類型常量具有默認類型,該類型是在需要類型值的上下文中將常量隱式轉(zhuǎn)換為的類型,例如,在沒有顯式類型的短變量聲明中。

一個無類型恒定的默認類型是bool,runeint,float64,complex128string分別,這取決于它是否是一個布爾值,符,整數(shù),浮點,復(fù)雜,或字符串常量。


查看完整回答
反對 回復(fù) 2021-08-30
?
神不在的星期二

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

這些是CS中的常用術(shù)語。一個表達式產(chǎn)生一個值,而一個語句通常不會產(chǎn)生一個值(最后一點取決于語言,事實上,一些語言將表達式視為語句的一個子類別)。

來自維基百科:

在大多數(shù)語言中,語句與表達式的對比在于,語句不返回結(jié)果并且僅因其副作用而執(zhí)行,而表達式總是返回結(jié)果并且通常根本沒有副作用。

在 Go 中,表達式可以用作語句。

您的困惑似乎來自遞增和遞減運算符。在 Go 中,與大多數(shù)基于 C 的語言相反,增量和減量語句不產(chǎn)生值,它們是語句而不是表達式。也就是說,你可能不會寫


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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