1 回答

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
目的是強(qiáng)制執(zhí)行布局規(guī)則:
gofmt 是一個(gè)漂亮的打印機(jī),其目的是強(qiáng)制執(zhí)行布局規(guī)則;它取代了通常允許解釋的“該做和不該做”的概要。
下面是來(lái)自go/printer/nodes.go 的格式化摘錄,詳細(xì)介紹了格式化規(guī)則:
格式化二進(jìn)制表達(dá)式:確定截止值,然后格式化。我們將深度 == 1 稱(chēng)為普通模式,將深度 > 1 稱(chēng)為緊湊模式。(Russ Cox 的算法建議。)
優(yōu)先順序是:
? ? ?5 ? ? ? ? ? ? * ?/ ?% ?<< ?>> ?& ?&^ ? ? ?4 ? ? ? ? ? ? + ?- ?| ?^ ? ? ?3 ? ? ? ? ? ? == ?!= ?< ?<= ?> ?>= ? ? ?2 ? ? ? ? ? ? && ? ? ?1 ? ? ? ? ? ? ||
唯一的決定是第 4 層和第 5 層周?chē)欠裼锌崭?。?6 層(一元)永遠(yuǎn)沒(méi)有空格,而第 3 層及以下層始終有空格。
要選擇截止值,請(qǐng)查看整個(gè)表達(dá)式,但不包括主要表達(dá)式(函數(shù)調(diào)用、帶括號(hào)的表達(dá)式),并應(yīng)用以下規(guī)則:
如果存在帶有右側(cè)一元操作數(shù)的二元運(yùn)算符,如果沒(méi)有空格就會(huì)發(fā)生沖突,則截止必須是(按順序):
???/*?6??? ???&&?6??? ???&^?6??? ???++?5??? ???--?5(比較運(yùn)算符周?chē)偸怯锌崭?。?/p>
如果混合使用 5 級(jí)和 4 級(jí)運(yùn)算符,則正常模式下的截止值為 5(使用空格來(lái)區(qū)分優(yōu)先級(jí)),而緊湊模式下的截止值為 4(從不使用空格)。
如果沒(méi)有 4 級(jí)運(yùn)算符或沒(méi)有 5 級(jí)運(yùn)算符,則正常模式下的截止值為 6(始終使用空格),緊湊模式下的截止值為 4(從不使用空格)。
- 1 回答
- 0 關(guān)注
- 123 瀏覽
添加回答
舉報(bào)