1.Kotlin 一个很厉害的厉害 DSL 写法
2.ç¼ç¨å害çè¿
3.源码编辑器最厉害的游戏
Kotlin 一个很厉害的 DSL 写法
好久没写博客了,今天发几个最近在各个地方看到的源码用源一些碉堡了的 Kotlin DSL。
本文先介绍一种 DSL 写法,巨好再推荐几个 DSL 项目。厉害
超厉害的源码用源 DSL
之前在 KotlinTest 上看到一个很牛逼的写法(我把 README 里的实例改了下):
这其中涉及了好几个 DSL 要素。我一一列举:
字符串后面跟一个代码块
这个东西的巨好同花顺ma指标源码原理你只要看了源码就知道了,很简单,厉害但是源码用源你不看就是想不到(这也是我厨 Kotlin 的原因之一,它很简单,巨好 但是厉害可以玩出很多花样来)。
就这样你可以利用这个 extension 写出字符串后面跟一个代码块的源码用源 DSL 。 此处使用的巨好语言特性有:
明白了吧。
使用
举个例子,厉害把他作为一个 URL 的源码用源 utility :
表格字面量
就是形如
这样的东西(上面的代码纯粹搞起耍,请不要在意)。巨好
这个就更简单了我觉得你们应该都知道:
无非就是变长参数。
形如 "(+ 1 1)" shouldBe 2 的测试
这个也很简单,我在小标题里写的就是我在 lice 里使用的测试。
首先,假定我们有以下测试:
我们希望写成:
很简单,可以有:
就是layoutit 源码分析一个中缀表达式而已。这有什么难的?
一些特定情况
我给我的 lice 写的测试中直接把运行字符串的那一步给包含进去了:
看到没有,运行 lice 代码就是这么简单,还能返回最后一个表达式的值 (喂
注意事项
任何长得类似这样的 DSL 都有一个缺点,就是缩进膨胀(字面意思)。 Scala 为了解决这个问题, 推荐用户使用 Tab size 2 的缩进(喂。 于是我也建议读者使用 2 空格缩进。
几个厉害的 DSL 项目
根据推荐程度排序:
Anko
传送门,不说了,最强的tcp timewait源码 Kotlin DSL 框架,想必大家早已有所耳闻:
厉害吧。这个框架是用于 Android 的,用于描述 UI 。有一点要说一下,现在的预览插件挂了。
弹窗:
还有一些非 UI 的吊炸天的代码块,比如异步:
两个基于 Swing 的 DSLGensokyo
传送门,一个刚出来的项目,它长这样:
Swing 其实没那么垃圾,只要配上 DSL ,idea 源码 插件啥 GUI 代码都变得好看了。
FriceEngine DSL
这是我之前弄的那个游戏引擎的 DSL 系统, 传送门,它长这样:
我自己觉得做的还不错。我还为它搞了个中文版,比较粗鄙,用于讽刺中文编程,请前往同项目的 README 查看。
官方教程里的 HTML DSL
传送门,它长这样:
这代码也是东莞门户源码我从 README 里面改过的,原文太瘦了,我改的胖一点。
官方给的例子,非常给力(当时也是看这个的源码搞懂了 anko 的原理)。
JavaFX DSL
传送门,它长这样:
我个人觉得很不错了已经。
嘛。祝大家玩 Kotlin 开心。
ç¼ç¨å害çè¿
è¿ä¸ªå¾ç®ååï¼éè¿ä»¥ä¸æ¥éª¤å°±å¯ä»¥ç¥éäºï¼
1.ç¼å·1~éååºæ¾ç2ç0~次æ¹çç±³ç²ï¼æ¨ç®å讲ææç±³ç²æ°ç´¯å å¾å°ææç±³ç²ä¹åã
2.人ï¼æ¯äººæ¯å¤©ä¸¤æ¤ï¼è¿æ¯è¦åæ»æç®â¦çªä¹åä¸äºè¿ä¹å¤å§-_-!ï¼ï¼å¾å°å ¨å½äººæ¯å¤©åææ¤ç±³ã
3.æ¯å¤©æ¤ç±³ï¼æ¯æ¤ç²ãå¾å°ç²ä¹å°±æ¯æ¯å¤©å ¨å½äººå°±è¦åæè¿ä¹å¤ç²ç±³ã
4.å ±æç²ç±³ï¼æ¯å¤©å ¨å½äººè¦åæç²ç±³ï¼ç¸é¤å¾å°å ±è¦å.天ã
5.å ±è¦å.天æè½åå®ï¼ä¸å¹´å¤©ãé£ä¹å°±æ¯è¦å.å¹´ã
æºä»£ç æå°±ä¸åä¸æ¥äºï¼è¿æ ·çå°ç¨åºç¸ä¿¡åä½å¤§è¾é½è½ååºæ¥ï¼å°±ä¸åå¼äºã
源码编辑器最厉害的游戏
源码编辑器最厉害的游戏是《动物森友会编程小时光》。
《动物森友会编程小时光》不仅是一款源码编辑器游戏,而且它通过寓教于乐的方式,将编程知识与趣味的游戏玩法相结合。在这个游戏中,玩家需要帮助森林里的动物们解决各种问题,而解决问题的手段就是编写代码。每个关卡都设计成了一个小故事,玩家需要通过编程来完成任务,比如帮助小兔子找到萝卜,或者帮助小熊找到蜂蜜。
这款游戏之所以被认为是源码编辑器最厉害的游戏,原因在于它巧妙地融合了教育性和娱乐性。它不仅教会了玩家们基础的编程逻辑,如条件判断、循环语句等,还通过生动可爱的动物角色和丰富多样的故事情节,激发了玩家们对编程的兴趣。此外,游戏还提供了丰富的编程工具和资源,让玩家能够在实践中学习和成长。
举个例子,在游戏中有一个关卡是需要玩家帮助一只迷路的小鸟找到家。玩家需要通过编程,控制小鸟按照特定的路径飞行,避开障碍物,最终找到鸟巢。在这个过程中,玩家不仅锻炼了逻辑思维能力,还学到了如何使用源码编辑器来解决实际问题。这样的游戏设计,既有趣又富有挑战性,使得《动物森友会编程小时光》成为了源码编辑器游戏中的佼佼者。
总的来说,这款游戏以其独特的教育方式和趣味性的游戏内容,成功吸引了大量玩家,尤其是年轻的学生群体。它让编程变得更加有趣和易懂,为普及编程教育做出了积极的贡献。