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

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