博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin Groovy Style Builder
阅读量:5251 次
发布时间:2019-06-14

本文共 3025 字,大约阅读时间需要 10 分钟。

fun main(args:Array
):Unit{ val x = a{ aa{ +"01.01" +"01.02" } aa{ +"02.01" +"02.02" } } print(x)}fun a(p:A.()->Unit):A { val a = A() a.p() return a;}class A { val children=arrayListOf
() fun aa(p:AA.()->Unit){ val aa = AA(); aa.p(); children.add(aa); } override fun toString(): String { val builder = StringBuilder("
") children.forEach { builder.append(it.toString()) } builder.append("\r\n") return builder.toString(); }}class AA { val children=arrayListOf
() operator fun String.unaryPlus() { children.add("\r\n\t\t
${this}
") } override fun toString(): String { val builder = StringBuilder("\r\n\t
") children.forEach { builder.append(it.toString()) } builder.append("\r\n\t
") return builder.toString(); }}

 执行结果

 

import java.util.*import List.Companion.listimport Map.Companion.mapfun main(args: Array
): Unit { val x = list { values("a", "b", "c") list { values("a", "b", "c") map { values("name" to "Fred") } } map { values( "name" to "Fred", "age" to "28", "fav" to list { values("java", "c++", "kotlin") } ) } } val y = map { values("languages" to list { values("java", "c++", "perl") values("scala","kotlin","ruby") }) } println(x) println(y)}class List : ArrayList
() { companion object { fun list(p: List.() -> Unit): List { val l = List() l.p() return l } } fun values(vararg x: Any) { this.addAll(x) } fun list(p: List.() -> Unit) { val l = List() l.p() this.add(l as Any) } fun map(p: Map.() -> Unit) { val m = Map() m.p() this.add(m as Any) }}class Map : HashMap
() { companion object { fun map(p: Map.() -> Unit): Map { val m = Map() m.p() return m } } fun values(vararg x: Pair
) { this.putAll(x) } fun list(p: List.() -> Unit): List { val l = List() l.p() return l; } fun map(p: Map.() -> Unit): Map { val m = Map() m.p() return m }}

执行结果

[a, b, c, [a, b, c, {name=Fred}], {name=Fred, fav=[java, c++, kotlin], age=28}]

{languages=[java, c++, perl, scala, kotlin, ruby]}

  

 

  

转载于:https://www.cnblogs.com/scala/p/5284408.html

你可能感兴趣的文章
CS294-112 深度强化学习 秋季学期(伯克利)NO.1 Introduction NO.2 Supervised learning and imitation...
查看>>
[CV] OpenCV图像处理教程- 23:像素重映射pixel remap
查看>>
竞争性排斥原理(高斯假说)
查看>>
Intellig IDEA 搭建spring boot 热部署
查看>>
MySQL 对于大表(千万级),要怎么优化呢?
查看>>
sqlmap基础入门超详细教程
查看>>
js产生随机数的几个方法
查看>>
PHP 正则表达式
查看>>
hdu 1106 排序
查看>>
交叉编译总结笔记
查看>>
Codeforces 915 G Coprime Arrays
查看>>
[JSOI2009] 有趣的游戏
查看>>
Windows 快捷关机
查看>>
【python】详解类class的继承、__init__初始化、super方法(五)
查看>>
RCNN--目标检测
查看>>
正则表达式的概述-初理解
查看>>
阿里实习面经1
查看>>
POJ2823 Sliding Window【双端队列】
查看>>
Ubuntu下安装OpenCV-2.4.2
查看>>
div显示2列
查看>>