JavaScript和Scala中ABAP mesh表达式的表达是怎样的

发布时间:2021-09-30 17:36:05 作者:柒染
来源:亿速云 阅读:164

今天就跟大家聊聊有关JavaScript和Scala中ABAP mesh表达式的表达是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

ABAP Mesh expression

JavaScript和Scala中ABAP mesh表达式的表达是怎样的

JavaScript

我在第10行调用了函数f,其中传入的第二个和第三个参数都是一个逗号表达式。

函数f的实现,会检查这两个参数的类型,如果是函数,则执行函数调用,再打印其返回值,否则直接打印传入的表达式的值。

JavaScript和Scala中ABAP mesh表达式的表达是怎样的

执行上面这段代码,打印输出如下:

JavaScript和Scala中ABAP mesh表达式的表达是怎样的

我们可以看出,虽然传入的第一个参数为true,导致函数f内部只会打印第二个参数y代表的表达式的值,5,但是第三个参数代表的表达式在函数f调用时,也进行了表达式求值,所以最后console也输出了Big calculation2。

如果我们想实现所谓的“惰性求值”,有时候也称”惰性计算“,那么只需要将原本写在表达式位置的逻辑用一个JavaScript函数包裹起来,如下:

JavaScript和Scala中ABAP mesh表达式的表达是怎样的

再次调用f,此时传入的参数y和z的类型为函数,因此在f进行调用时,同之前传入的表达式不同,这里并不会即时调用y和z代表的函数。打印输出:

JavaScript和Scala中ABAP mesh表达式的表达是怎样的

Scala

Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。

Scala 运行在Java虚拟机上,并兼容现有的Java程序。

Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。

JavaScript和Scala中ABAP mesh表达式的表达是怎样的

下图第5行和第12行我分别定义了两个Scala函数exp_test1和exp_test2, 逻辑和之前的JavaScript函数f类似。

exp_test1接受的第二个和第三个参数类型为exp1 :=> Unit,意思是需要传入一个表达式,这个表达式的返回类型是Unit。

exp_test2接收的第二个和第三个参数类型为exp1() :=> Unit,意思是需要传入一个函数,这个函数没有任何输入参数,函数的返回类型是Unit。

JavaScript和Scala中ABAP mesh表达式的表达是怎样的

第19行到第25行是对这两个函数的各种测试,打印输出:

JavaScript和Scala中ABAP mesh表达式的表达是怎样的

可以看到,即使传入两个函数exp_test1和exp_test2的第二个和第三个参数都是表达式,Scala也能做到对表达式的惰性求值:

第19行和第20行的函数调用,第三个参数位置的表达式和函数都没有即时求值,而是惰性求值。

第22行和第23行的函数调用,第二个参数位置的表达式和函数都没有即时求值,而是惰性求值。

看完上述内容,你们对JavaScript和Scala中ABAP mesh表达式的表达是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. Scala笔记整理(一):scala基本知识
  2. 聊聊JavaScript和Scala的表达式 Expression

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

abap scala javascript

上一篇:如何解决jquery-multiselect在ie6里的bug

下一篇:如何编写一个php检测文件编码的函数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》