• 解读X++中的分号


    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等)是肯定不会用来声明变量的,因此他们的出现也代表了代码段的起始。因此编译器是不会报错的。

  • 相关阅读:
    SAP HANA概述——SAP HANA学习笔记系列
    如何在Visual Studio 2010中使用CppUTest建立TDD的Code Kata的环境
    客户旅程分析 Customer Journey Mapping
    “用户故事”来做展会——敏捷嘉年华(敏捷之旅2012上海站)经验分享
    相机翻拍书本
    外网访问路由
    新编全医药学大词典下载地址
    MKV声道切换花屏处理
    几何画板动态表达式(文本与变量合并)
    修改IP地址
  • 原文地址:https://www.cnblogs.com/daxnet/p/1686949.html
Copyright © 2020-2023  润新知