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

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

為什么 Golang 強制大括號不在下一行?

為什么 Golang 強制大括號不在下一行?

Go
慕妹3242003 2021-06-14 08:09:50
正確的:if(true) {}不正確:if(true){}為什么強制執(zhí)行這種風(fēng)格,是否與語言規(guī)范有關(guān),或者僅僅是因為他們更喜歡一種風(fēng)格而不是另一種風(fēng)格?
查看完整描述

3 回答

?
至尊寶的傳說

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

大多數(shù)C派生語言都使用 style if ( <condition> ) <statement>,statement如果condition為真則執(zhí)行。在statement可以是單個語句或支柱封閉塊。


Go 的if語句需要后面的大括號括起來的塊,而不是單個語句。這是為了避免大多數(shù)風(fēng)格指南通過要求所有語句都使用大括號來避免的常見錯誤if。


//subtle error in C

if (<condition>)

  <statement1>;

  <statement2>;

現(xiàn)在,Go 在if語句之后需要一個大括號塊,這些語句()是多余的。它們僅用于幫助詞法分析器區(qū)分條件和語句,否則if <condition> <statement>很難解析。(條件在哪里結(jié)束,語句從哪里開始?)


現(xiàn)在 Go 的作者有一個決定:

  • 保留多余的 ()

  • 需要{遵循<condition>

他們認為裁員是不可取的。這有第二個副作用。由于;在每個換行符處都有一個隱式,如果{是在下一行,a;會被放在<condition>和之間{。Go 的作者再次面臨一個決定:

  • 特殊情況下解析器對<condition>; {構(gòu)造很聰明

  • 要求大家統(tǒng)一風(fēng)格if ... {。

  • 要求<condition>在一行上。

解析器的特殊外殼是一件非常糟糕的事情。看看與 C++ 糟糕的解析器性能相比,D和 Go 解析器的速度。統(tǒng)一的風(fēng)格也是一件好事。考慮到限制,他們的最終決定非常簡單。


查看完整回答
反對 回復(fù) 2021-06-21
  • 3 回答
  • 0 關(guān)注
  • 854 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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