DSL构建:领域特定语言

  1. 什么叫API整洁?

    • 能够让读者清楚的知道在代码中发生了什么(选择良好的名称和概念)
    • 代码需要看起来整洁,极少使用浮夸的代码且不存在冗余的语法
      在这里插入图片描述
  2. 领域特定语言的概念

    • 通用编程语言(解决几乎所有能被计算机解决的问题);领域特定语言(专注在特定任务,或者说领域上,并放弃与该领域无关的功能)
    • 最常用的DSL语言:SQL & 正则表达式
    • DSL趋向于声明式(描述了想要的结果并将执行的细节留给了解释它的引擎)
    • 内部DSL : 用通用编程语言编写的程序的一部分,使用了和通用编程语言完全一致的语法
  3. 带接收者的lambda
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 使用invoke约定构建更灵活的代码块嵌套
    概念:使用与常规方法调用语法不同的,更简洁的符号,调用有着特殊命名的函数。
    举例:get,它允许通过下标来访问一个对象 foo.get(bar) -> foo[bar]
    使用:类如果定义了使用operator修饰符的invoke方法,就可以被当作函数一样调用
    在这里插入图片描述
    注意:lambda除非是内联的,否则都是被编译成呢实现函数式接口(Function1等)的类,而这些接口定义了具有对应数量参数的invoke方法
    在这里插入图片描述
    DSL中的Invoke约束
    gradle配置模块依赖

    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值