首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Groovy构建DSL

常用于聚焦指定的领域或问题,这就要求 DSL 具备强大的表现力,同时在使用起来要简单。由于其使用简单的特性,DSL 通常不会像 Java,C++等语言将其应用于一般性的编程任务。...对于 Groovy 来说,一个伟大的 DSL 产物就是新一代构建工具——Gradle,接下来让我们看下有哪些特性来支撑Groovy方便的编写DSL: ?...比如: //闭包赋值 def closure = { printf("hello") } //调用 closure() 2、括号语法 当调用的方法需要参数,Groovy 不要求使用括号,若有多个参数...,那么参数之间依然使用逗号分隔;如果不需要参数,那么方法的调用必须显示的使用括号。...为了加深印象,我写了个小的开源项目,把上面知识点串起来,构建了一个较完整的流程,如果还有什么不懂的地方,欢迎留言交流。

1.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin 使用DSL构建语法结构 看这一篇就够了~

前言 DSL并不是单独为Kotlin语言提供的,可能你并知道DSL是什么,但是我敢说,只要你是Android开发者,你就一定使用过并且一直在使用DSL,那么到底什么是DSL?...使用DSL又可以实现怎么样的功能呢?...DSL是什么 DSL的全程是Domain Specific Language 即 领域特定语言,我们可以通过DSL语言 构建出属于我们自己的语法结构,而在Kotlin中并不只有一种方式实现DSL,而主要的实现方式就是高阶函数...DSL的基础用法 接下来,我们来看,Kotlin中如何使用DSL构建自己的语法呢,要想装13 我们当然要来实现和上面一样的语法结构,那我们就来造一个吧~ 首先我们新建一个类Dependency,名字是可以随便起的...关于Anko插件如何使用,就不讲解了,感兴趣的可直接到Github上了解:https://github.com/Kotlin/anko 写在最后 DSL使用场景远远不止这些,其实前提就是使用好高阶函数

1.5K20

《Kotin 极简教程》第14章 使用 Kotlin DSL第14章 使用 Kotlin DSLKotlin极简教程》正式上架:

第14章 使用 Kotlin DSL 非常感谢您亲爱的读者,大家请多支持!!!有任何问题,欢迎随时与我交流~ ---- 我们在前面的章节中,已经看到了 Kotlin DSL 的强大功能。...我们可以看出,使用DSL的编程风格,可以让程序更加简单干净、直观简洁。当然,我们也可以创建自己的 DSL。 本章就让我们一起来学习一下 KotlinDSL的相关内容。...(XML 本质上讲也是一种 DSL),明显使用原生的编程语言(例如KotlinDSL 风格更加简单干净,也更加自由灵活。...更加典型的例子是Gradle,它基于Ant 和 Maven,使用基于Groovy的DSL 来声明项目构建配置 build.gradle,而不是传统的XML。...Kotlin 的扩展函数和高阶函数(Lambda 表达式),为定义Kotlin DSL提供了核心的特性支持。 使用DSL的代码风格,可以让我们的程序更加直观易懂、简洁优雅。

2.1K10

使用 Kotlin Symbol Processing 1.0 缩短 Kotlin 构建时间

KSP 是使用 Kotlin 进行注释处理的新一代工具: 它将大幅提高 Kotlin 开发者的构建速度,而且不同于 KAPT,该工具提供了对 Kotlin/Native 和 Kotlin/JS 的支持。...开始使用 KSP 要开始使用 KSP,您可以从 GitHub 下载 KSP Playground 项目,从中您将了解如何将 KSP 用作注释处理器以及使用应用/库: 注释处理器: 将构建器模式作为 KSP...处理器实现的小型 test-processor 库 使用库: 显示如何在实际 Kotlin 项目中使用构建器处理器的 workload 目录 如果您是应用开发者,请查看 支持库列表 以及 快速入门 指南...使用带 KSP 的 Moshi 或 Room 如果您在项目中使用 Moshi 或 Room,您只需快速修复模块的构建文件即可体验 KSP。...最后 通过使用 KSP 1.0 版,您可以发现 Kotlin 项目的构建速度得到了提升,因为您将不再使用基于 KAPT 的库。

3.7K10

使用 Kotlin 构建 Android 应用 | Kotlin 迁移指南 (上篇)

Kotlin 构建 Android 应用。...(比如在主线程中异步访问数据库) 避免在主线程上运行耗时较长的任务 (如图像或网络操作) 发生阻塞 比如下面这个例子,使用协程不会对主线程造成阻塞,并可提高可读性: // 使用回调 fun getData...复制代码 使用 Kotlin 构建 Android 应用 ?...△ Kotlin 推进的时间表 使用 Kotlin 更快速地编写更棒的 Android 应用,自两年前 Android 平台开始支持使用 Kotlin 语言后,我们一直在努力丰富使用 Kotlin 构建的体验和开发效率的提升...x Jetpack 在推荐开发者使用 Kotlin 构建应用的同时,Android 团队自己也在大规模的使用 Kotlin,比如下面要跟大家介绍的在 Jetpack 库中的 Kotlin 特性的使用:

1.2K20

使用Gradle方式构建Kotlin缓存

Kotlin 1.2.21 允许 Kotlin 项目使用构建缓存,通过 Gradle 的构建缓存功能,可以提升 Kotlin 代码的编译速度,加快开发周期。...4, 从构建缓存中重新构建 当我们重新构建,从构建缓存中拉取所有编译过的 Kotlin 源码。 ❯ ....另外 Gradle 构建缓存也支持缓存:test任务。当持续集成的一个实例填充了一个 共享的构建缓存(开发者可以从中拉取),Gradle 构建缓存会特别有效。下文罗列了实现这点的 更多资源的链接。...kotlin-gradle-plugin:1.2.21" } 然后,我们需要让 Gradle 使用构建缓存。...Gradle(将 IDE 构建 / 运行动作委派给 Gradle)”,从而在 IntelliJ 中构建和运行测试利用构建缓存。

56430

实战记录—PHP使用curl出错出错误信息

CURL错误列表 curl_exec($ch);//执行curl if (curl_errno($ch)) { echo 'Curl error: ' . curl_error($ch);//出错出错误...} curl_close($ch);//关闭curl 同理,像正则,Json,数据库这些出错基本都会有提供有帮助的错误信息 CURL状态码列表 状态码 状态原因 解释 0 正常访问 1 错误的协议...并非所有的FTP 服务器支持PORT 命令,请 尝试使用被动(PASV)传输代替! 31 FTP错误 FTP 无法使用REST 命令。REST 命令失败。此命令用来恢复的FTP 传输。...指定的外发接口无法使用。 47 过多的重定向 过多的重定向。cURL 达到了跟随重定向设定的最大限额跟 48 无法识别选项 指定了未知TELNET 选项。...56 衰竭接收网络数据 在接收网络数据失败。 57 58 本地客户端证书 本地证书有问题。 59 无法使用密码 无法使用指定的SSL 密码。

5.9K50

Kotlin 反应式编程》使用 RxKotlin 实现一个极简的 http DSL ( Reactive Programming Using Rx Kotlin )《Kotlin 反应式编程》使用

Kotlin 反应式编程》使用 RxKotlin 实现一个极简的 http DSL Reactive Programming Using Rx Kotlin https://github.com/ReactiveX.../RxKotlin RxKotlin: RxJava bindings for Kotlin 使用 RxKotlin 实现一个极简的 http DSL ( Reactive Programming Using...Rx Kotlin ) 我们现在已经基本知道 KotlinDSL 的样子了。...提示: 更多关于OkHttp 的使用可参考: http://square.github.io/okhttp/ 创建 Kotlin Gradle 项目 我们首先使用 IDEA 创建 Kotlin Gradle...Kotlin 的扩展函数和高阶函数(Lambda 表达式),为定义Kotlin DSL提供了核心的特性支持。 使用DSL的代码风格,可以让我们的程序更加直观易懂、简洁优雅。

1.7K20

从API到DSL —— 使用 Kotlin 特性为爬虫框架进一步封装

NetDiscovery 本身提供了很多功能的 API,然而它的 DSL 模块是为了让使用者拥有更多的选择。 本文讨论的 DSL 是内部 DSL。...NetDiscovery 的 DSL 主要是结合 Kotlin 带接收者的 Lambda、运算符重载、中缀表达式等 Kotlin 语法特性来编写。...Selenium 模块的 DSL 封装 在我之前的文章为爬虫框架构建Selenium模块、DSL模块(Kotlin实现) 中,曾举例使用 NetDiscovery 的 Selenium 模块实现:在京东上搜索我的新书...这里的 DSL 需要封装所使用的浏览器、浏览器驱动地址、各个模拟浏览器动作(Action)等。...总结 爬虫框架github地址:https://github.com/fengzhizi715/NetDiscovery 这里使用DSL 很多情况是对链式调用的进一步封装。

86140

实战 | 使用 Kotlin Flow 构建数据流 管道

△ 传统的请求数据与单向数据流 响应式编程 我们将这类观察者会自动对被观察者对象的变化而作出反应的系统称之为响应式编程,它的另一个设计要点是保持数据只在一个方向上流动,因为这样更容易管理且不易出错。...△ 单向数据绑定 使用 Flow 可以想象对于这些组合和转换来说,我们需要一个成熟的工具来完成这些操作。在本文中我们将使用 Kotlin Flow 来实现。...我们使用数据流构建器来创建数据流,因为 Flow 是在协程上下文环境中运行的,它以挂起代码块作为参数,这也意味着它能够调用挂起函数,我们可以在代码块中使用 while(true)来循环执行我们的逻辑。...在 Flow 中,操作会在同一个协程中顺序执行,使用 while(true) 循环可以让 Flow 持续获取新消息直到观察者停止收集数据。传递给数据流构建器的挂起代码块通常被称为 "生产者代码块"。...Kotlin Flow 构建您的基础设施。

1.4K10

使用 Kotlin 构建的常见问题解答 | Kotlin 迁移指南 (下篇)

我们于近期开始连载了关于 Kotlin 迁移指南的系列文章,帮助开发者们顺利迁移并开始使用 Kotlin 构建 Android 应用。...本篇是本系列的下篇,我们将为您解答一些使用 Kotlin 构建应用时的常见问题。...您可以点击下面链接回顾本系列的上篇和中篇: 使用 Kotlin 构建 Android 应用 开始迁移到 Kotlin 在 Android 开发中使用 Kotlin 语言的常见问题解答 Android 为何将...如何将 Kotlin 代码添加到我的新项目中? 当您在 Android Studio 中创建新项目,只需选中 Include Kotlin support 复选框即可。...界面上出现提示,点击 Yes,即可将 Java 代码转换成 Kotlin 代码。有关详情,请参阅 Kotlin 使用入门。

4.4K20

zblogasp安装出错,左侧显示无法使用Access数据库

今天突然想起之前的一个网站博客,感觉还不错,但它是zblogasp的,所以想移植到zblogphp版本,但是把网站数据恢复之后登陆后台显示,数据库连接出错,因为asp+access类型,目录位置都对,所以可能是...为了验证这一理论,重新下载zblogasp2.2版本重新安装,左侧显示无法使用Access数据库,但服务器本身支持access数据库,找了下原因,是因为微软要放弃access了,所以就没开发access...win7是64位,同样也不能支持access,简单说下怎么解决windows2008r2-64位系统-支持access数据库问题: 首先打开IIS管理器,查看网站的高级属性: 应用程序池选项,记住当前使用的应用程序池名称...也可以在这里直接修改使用的应用程序池。...强调一下,无论使用哪个应用程序池都是可以成功启用Access的返回,点击左边应用程序池节点,查看刚才使用的应用程序池的高级属性(这里是DafaultAppPool) ?

4.6K30

干货 | 实现一个属于你的“语言”-携程Kotlin DSL开发与实践

这里主要分享在Kotlin构建使用DSL。 二、应用 Kotlin DSL的应用广泛,包括gradle编写、编写js、html、SQL等。...groovy往往需要配合文档进行编写;而kotlin是一种静态语言,使用它编写gradle脚本则可以有比较好的智能提示体验。...在Gradle5.0中,官方提供可以选择在项目中生成Groovy或者kotlin DSL构建脚本,并进一步的优化代码自动完成、重构和其他 IDE 辅助功能,为使用Kotlin DSL的 IDE 用户带来了极大的便利...目前我们在海外支付SDK中利用kotlin DSL构建大约在17s,利用groovy DSL构建大约在16s,时间上来说几乎没有区别,所以小型项目推荐尝试使用!...相信在不久的未来kotlin DSL可以解决这个问题,那么利用kotlin DSL构建项目势必会成为趋势。

1.6K10

Gradle Kotlin DSL指南

注意,您可以将Groovy DSL构建脚本与Kotlin DSL构建脚本混合使用,例如,Kotlin DSL构建脚本可以应用Groovy DSL脚本,多项目构建中的每个项目都可以使用其中任何一个。...DSL包中的所有类型 避免使用内部Kotlin DSL api 在插件和构建脚本中使用内部Kotlin DSL api可能会在Gradle或插件发生变化时破坏构建。...随着语言的成熟,这将不再是一个问题 Kotlin的编译器参数 这些是在一个应用了KotlinDSL插件的项目中编译Kotlin DSL脚本和Kotlin源代码和脚本使用Kotlin编译器参数:...互用性 在构建逻辑中混合语言,可能需要跨越语言边界。一个极端的例子是使用Java、Groovy和Kotlin实现的任务和插件的构建,同时也使用Kotlin DSL和Groovy DSL构建脚本。...>接受方法调用 使用Groovy脚本 当处理有问题的插件,另一种选择是在Groovy DSL构建脚本中配置它们,该脚本应用于主要的Kotlin DSL构建脚本: 使用Groovy脚本 build.gradle.kts

10K20
领券