如何使用Kotlin的语言特性创建一个层次分明的URL建造器

本文介绍如何利用Kotlin的lambda表达式、函数参数和扩展函数特性创建一个层次分明、易读的URL建造器。通过示例代码展示了URL、ParamList和Param类的实现,提供了一个更优雅的URL构建方式。
摘要由CSDN通过智能技术生成

传统的URL建造器是怎么使用的呢?类似于下面这样子:

//以下代码并不能运行,只是为了举例
val url=URLBuilder().protocal(“”).hostname(“”).post(“”).path(“”).addParam(“”,”“).build()
首先让我么们看看完成后的URL建造器的实际运用。

 val u=url {
        protocal { "http" }
        hostname { "www.feintkotlin.com" }
        port { 8080 }
        path { "article/all" }
        paramList {
            param {
                key { "name" }
                value { "feint" }
            }
            param {
                key { "age" }
                value { "11" }
            }
        }
    }

整个建造器给人的感觉就像是JSON字符串一样,具有层次结构,看起来清晰、舒服。虽然相较于传统的写法可能输入的代码量会稍微多一些,但也相差不大;为了可读性的提升,这一点小小的牺牲还是值得的。

接下来,让我们看看这样子的写法究竟是怎么实现的。

首先说明一下,将会用到语言特性:

lambda表达式(稍微接触过Kotlin的人,看到那些花括号后应该就能看出来了)
函数参数(在Kotlin中可以将函数作为参数使用)
扩展函数
整个url建造器的最外层是url{…},让我们看看它所对应的代码:

fun url(init: URL.() -> Unit): URL {
    val url = URL()
    url.init()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值