当前位置: 首页 > 后端技术 > Node.js

ABAPmesh表达式,JavaScript和Scala表达式

时间:2023-04-03 16:50:42 Node.js

ABAPMesh表达式JavaScript我在第10行调用函数f,其中传入的第二个和第三个参数都是逗号表达式。函数f的实现会检查这两个参数的类型,如果是函数就执行函数调用,然后打印它的返回值,否则直接打印传入的表达式的值。执行上面的代码,得到打印输出如下:我们可以看到虽然传入的第一个参数为真,但是函数f只会打印第二个参数y,5表示的表达式的值,但是第三个参数表示的表达式也被求值了当函数f被调用时,所以最后控制台也输出了Bigcalculation2。如果我们要实现所谓的“惰性求值”,有时也称为“惰性计算”,那么我们只需要用一个JavaScript函数将原本写在表达式位置的逻辑包裹起来,如下:再次调用f,传入此时参数y和z的类型都是函数,所以在调用f的时候,和之前传入的表达式不同,y和z所代表的函数并不会立即被调用。打印输出:ScalaScala是一种多范式编程语言,旨在集成面向对象编程和函数式编程的各种特性。Scala运行在Java虚拟机上,与现有的Java程序兼容。Scala源代码被编译成Java字节码,因此可以在JVM上运行并调用现有的Java类库。下图第5行和第12行,我分别定义了两个Scala函数exp_test1和exp_test2,逻辑和前面的JavaScript函数f类似。exp_test1接受的第二个和第三个参数类型是exp1:=>Unit,也就是说需要传入一个表达式,这个表达式的返回类型是Unit。exp_test2接收到的第二个和第三个参数类型是exp1():=>Unit,也就是说需要传入一个函数,这个函数没有任何输入参数,函数的返回类型是Unit。第19行到第25行是对这两个函数的各种测试,打印输出:可以看出,即使exp_test1和exp_test2这两个函数的第二个和第三个参数都是表达式,Scala也可以实现表达式的惰性求值:函数在第19和20行调用,第三个参数位置的表达式和函数不是立即求值,而是延迟求值。第22和23行的函数调用,第二个参数位置的表达式和函数不是立即求值,而是惰性求值。获取更多Jerry原创文章,请关注公众号“王子熙”: