`
JerryWang_SAP
  • 浏览: 1000527 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

ABAP mesh表达式, JavaScript和Scala的 expression

阅读更多

ABAP Mesh expression

JavaScript

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

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

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

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

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

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

Scala

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

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行的函数调用,第二个参数位置的表达式和函数都没有即时求值,而是惰性求值。

0
0
分享到:
评论

相关推荐

    SAP ABAP 正则表达式 Regular expressions

    在SAP ABAP开发中,正则表达式(Regular expressions)是一种强大的文本处理工具,能够高效地处理基于文本的信息。...对于那些想要深入理解和熟练掌握ABAP正则表达式的开发者来说,Regex Toy是一个不可或缺的工具。

    ABAP正则表达式的使用

    ### ABAP正则表达式的使用 #### 一、引言 ABAP(Advanced Business Application Programming)作为SAP系统的核心编程语言之一,在企业级...未来随着技术的发展,相信ABAP中的正则表达式功能还将不断得到完善和扩展。

    ABAP正则表达式

    在ABAP中,正则表达式(Regular Expressions)是一种强大的文本处理工具,允许程序员进行复杂的字符串匹配、查找、替换和提取操作。在本篇内容中,我们将深入探讨ABAP中的正则表达式及其应用。 1. **正则表达式基础...

    ABAP中正则表达式的简单使用

    在ABAP中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许开发者以灵活的方式搜索、替换或提取字符串中的模式。自ECC6版本及后续的ABAP 7.00版本起,ABAP支持POSIX标准的正则表达式,这极大地...

    Abap programming

    本主题聚焦于“ABAP编程”与“JavaScript”的结合,探讨如何在SAP环境中集成这两种技术以构建更丰富的用户界面和交互体验。 一、ABAP基础 ABAP是SAP的核心编程语言,用于开发SAP模块,如财务、人力资源、供应链管理...

    ABAP学习手册归类.pdf

    在本文档中,我们将对 ABAP 的基础知识和应用进行系统性地总结和归类。 一、ABAP 基础知识 1.1 Basis TSTCT 事务代码文本 ABAP 中的 Basis TSTCT 是一种事务代码文本,用于描述事务的基本信息。 1.2 Sales ...

    ABAP学习手册.pdf

    * ABAP有三种类型的处理块:Event blocks、Dialog Modules和Procedures。只有Procedures可以拥有自己的局部变量,并且程序语句是内部调用。 * ABAP有两种类型的应用程序:可执行的Report和模块池Program。 * ABAP的...

    ABAP 个人笔记-我的SAP学习

    本资源是关于 ABAP 的一些小心得,涵盖了 ABAP 工作平台的中心入口 Object Navigator、常用 T-CODE、ABAP Editor 的使用、处理块类型、应用程序类型、语句链、数据内部定义、结构体赋值、ABAP 数据表达式、用户主...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    ABAP 4.7引入了类和对象的概念,支持继承、封装和多态性,这使得代码可维护性和复用性大大提升。 5. 功能模块和库: 功能模块是预定义的程序单元,可以被其他程序调用。ABAP库则包含一组相关功能模块,用于特定的...

    ABAP开发规范和命名规则

    ABAP开发规范和命名规则是IBM提供的一套开发标准和命名惯例,为ABAP开发者提供了详细的开发指南和命名规则,以确保开发的程序代码质量和可读性。本文将对ABAP开发规范和命名规则进行详细的解释和说明。 一、文档...

    SAP ABAP 开发环境和开发工具介绍

    SAP ABAP 开发环境和开发工具介绍 SAP ABAP 开发环境和开发工具是 SAP 系统中最重要的组件之一,它提供了一个强大的开发平台,允许开发者创建、测试和部署 ABAP 程序。ABAP 是 SAP 系统中的主要编程语言,用于开发...

    ABAP 调用ABAP PROXY

    2. **生成Proxy代码**:在目标系统中,使用SE80事务码,通过“生成ABAP Proxy”功能,输入源系统的服务接口信息,自动生成对应的ABAP Proxy类和相关代码。 3. **编译与激活**:生成的Proxy代码需要在目标系统中进行...

    abap7.4 新特性

    - **ABAP 文档**:包括关键词文档的更新以及在 ADT(Eclipse)中的文档支持,这些改进有助于开发者更好地理解和使用 ABAP 的新特性。 #### 后续学习资源 - **ABAP 关键词文档**:官方文档是了解所有新特性和详细...

    ABAP 740 新语法.pdf

    新版本的ABAP中,表表达式变得更加灵活和强大。开发者可以使用更简洁的语法来操作内部表,例如在访问内部表元素时,可以直接使用类似于SQL的语法,而无需再使用传统的循环结构。 3. 转换操作符(Conversion ...

    ABAP加密和解密.doc

    在ABAP编程中,加密和解密是两个关键的安全操作,用于保护敏感数据不被未经授权的用户访问。本文将深入探讨ABAP环境下的加密和解密技术,以及如何在实际应用中实施这些技术。 首先,我们需要理解加密的基本原理。...

    ABAP资料ABAP资料ABAP资料

    ABAP资料ABAP资料ABAP资料ABAP资料ABAP资料

    ABAP 帮助 英文版

    在“ABAP 帮助 英文版”这个资源中,你将找到一个ABAP4的帮助文件(ABAP.HLP),这对于那些希望深入理解ABAP语言和进行ABAP开发的人员来说是非常有价值的。 1. **ABAP基础**: ABAP是一种过程驱动的编程语言,支持...

    ABAP中文完美学习手册

    7. 控制ABAP程序流:ABAP通过编程逻辑表达式控制程序的分支和循环。包括使用IF语句实现条件分支、使用CASE语句进行多条件分支、使用DO和WHILE语句实现循环。理解如何组合逻辑表达式以及如何检查字段的初始值、范围和...

    abap学习资料abap

    作为ABAP的学习资料,"ABAP学习资料abap"包含了针对初学者和进阶者的全面教程,旨在帮助用户在三个月内掌握ABAP的基础到高级知识。 文档“ABAP三月通.doc”很可能包含以下关键知识点: 1. **ABAP概述**:介绍ABAP...

    ABAP751 ABAP - Keyword Documentation

    ABAP - Keyword Documentation This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks ...

Global site tag (gtag.js) - Google Analytics