Salesforce系列(四):Salesforce中深入认识Apex中的i++、++i语句!

Salesforce系列(四):Salesforce中深入认识Apex中的i++、++i语句!


前言

今天博主将为大家分享:Salesforce系列(四):Salesforce中深入认识Apex中的i++、++i语句!不喜勿喷,如有异议欢迎讨论!

再看这篇文章前博主郑重推荐大家前往阅读我的VsCode安装汉化等系列文章,点这里跳转:VsCode系列(一):下载安装及汉化 以及 Salesforce系列(一):使用Visual Studio Code进行开发!

在几乎所有的命令式编程语言中,必然都会有i++和++i这种语法。在编程启蒙教材《C语言程序设计》一书中,也专门解释了这两条语句的区别。有些语言中i++和++i既可以作为左值又可以作为右值,在Apex语言中,这两条语句都只能作为右值,而不能作为左值。同时,它们都可以作为独立的一条指令执行。


正题

Integer i = 0;
Integer j1 = i++; // 正确
Integer j2 = ++i; // 正确
i++; // 正确
++i; // 正确
 
i++ = 5; // 编译不通过 - Expression cannot be assigned
++i = 5; // 编译不通过 - Expression cannot be assigned

关于i++和++i的区别,稍微有经验的程序员都或多或少都是了解的,为了文章的完整性,本文也通过实例来简单地解释一下。

/**********- Example1 -**********/
Integer i = 0;
Integer j1 = ++i;
Integer j2 = i++;
System.debug(i);// 输出2
System.debug(j1 + '----' + j2);// 输出1---1
 
/**********- Example2 -**********/
Integer i = 1;
Integer j1 = i++;
System.debug(j1);// 输出1
System.debug(i);// 输出2
 
/**********- Example3 -**********/
Integer i = 1;
Integer j2 = ++i;
System.debug(j2);// 输出2
System.debug(i);// 输出2

综上所述:

  1. 无论是i++和++i指令,对于i变量本身来说是没有任何区别,指令执行的结果都是i变量的值加1;
  2. 对于Example1的j1,先将i变量值加1,然后将i的当前值(1)赋给变量j1(1);
    对于Example1 的j2,先将i的原始值(1)赋给变量j2(1),然后i变的量值加1;

如果参照java的i++和++i还是有很大区别的。

 /********** -Example4- **********/
Integer i = 0;
i = i++;
System.debug(i); // 输出0 
 
/********** -Example5- **********/
Integer i = 0;
i = ++i;
System.debug(i); // 输出1

综上所述:(对比)

  • 在Apex中Example4,5在IDE不会抛出任何异常

  • 但是在Java中Example4的i = i++的导致的结果“异常”;Example5 IDE抛出:【The assignment to variable i has no effect】(赋值给变量i没有效果)警告。

  • 但是不论在Apex还是Java中最终都会输出同样的结果,总而言之我们可以把上边的口诀进一步提炼如下:

  1. 不论i++,++i在没有使用自身变量i接收(无i=i++/i=++i)的情况下,i的最终值都是累加;
  2. 在i++,++i使用了变量接收的情况下(可以是自身变量接收,也可以是其他变量接收),
    接收的值对于i++,遵循先赋值i,后i自增;对于++i,将+后的值赋给接收变量。

我们来试试,进入工作台点击设置齿轮按钮(如果还没注册推荐阅读博主的:Salesforce系列(0):Salesforce注册开发者账号!),进入开发者控制台(Developer Console)。窗体开启后点击Debug,将要运行的代码复制进去,勾选“open log”------点击“Execute”执行这段代码,想要显示运行后和我的截图一样,就勾选Debug only,和Filter过滤并显示调试内容。
Salesforce系列(四):Salesforce中深入认识Apex中的i++、++i语句!_第1张图片


到这里:Salesforce系列(四):Salesforce中深入认识Apex中的i++、++i语句!分享完毕了,快去试试吧!


最后

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!


你可能感兴趣的:(SalesForce,Apex,杂记随笔系列)