X++代碼中有個(gè)分號(hào)特別有意思,看起來像是把變量的聲明段和代碼部分分開了,便于編譯器解析。我們會(huì)發(fā)現(xiàn),有時(shí)候不加這個(gè)分號(hào),代碼編譯也不會(huì)有錯(cuò),而有時(shí)候又不得不加。有人說,如果代碼部分開始的第一個(gè)詞語是一個(gè)關(guān)鍵字,則可以不加。這種說法沒錯(cuò),但沒解釋原因。總之,目的只有一個(gè),就是為了編譯器能夠順利解析哪些部分是聲明,哪些部分是代碼。
請(qǐng)看下面的代碼:
static void Job18(Args _args) { ItemId itemId; itemId = '1000'; }
上面的代碼是沒法編譯通過的,原因就是聲明和代碼體部分少了一個(gè)分號(hào)。而下面的代碼卻又是編譯通過的:
static void Job18(Args _args) { ItemId id; id = '1000'; }
這是為什么呢?因?yàn)閄++是一種大小寫不敏感的語言,在第一種情況下,ItemId和itemId被看成是一碼事,于是就把“itemId = '1000';”這句話也當(dāng)成是變量聲明了,但變量聲明的時(shí)候,需要有一個(gè)變量名,而不是在變量類型后面直接接一個(gè)等號(hào),于是編譯器就報(bào)錯(cuò)了。
再看下面的例子:
// Cannot compile static void Job18(Args _args) { ItemId id; AccountNum accountNum; accountNum = '1000'; id = 'CUST111'; } // Can compile static void Job18(Args _args) { ItemId id; AccountNum accountNum; id = 'CUST111'; accountNum = '1000'; }
有意思吧?總之,只要能夠讓編譯器自動(dòng)區(qū)分聲明段和代碼段,中間這個(gè)分號(hào)就可以省略。代碼段中的特定關(guān)鍵字(比如if, switch, super等)是肯定不會(huì)用來聲明變量的,因此他們的出現(xiàn)也代表了代碼段的起始。因此編譯器是不會(huì)報(bào)錯(cuò)的。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
