• Kotlin有点用力过猛了


    public fun readBlogHtml(blog: String) : Observable<String> {
        return Observable.just(blog)
                        .map{ blog -> assembleUrl(blog) }
                        .flatMap { url -> readHtml(url) }
    }

    搞得我有点迷乱……

    而且其实flatMap是不需要的,因为Kotlin读网页源码就一句话……

    public fun readHtml(url: String) : Observable<String> {
        return Observable.create<String> {
            subscriber -> subscriber.onNext(URL(url).readText()); subscriber.onCompleted()
        }
    }

    还不如不用Observable……

    于是就进一步变成了这样:

    public fun readBlogHtml(blog: String) : Observable<String> = Observable.just(blog)
                        .map { blog -> assembleUrl(blog) }
                        .map { url -> readHtml(url) }
    
    private fun assembleUrl(blog: String?): String = "http://$blog.tumblr.com/page/"
    
    public fun readHtml(url: String) : String = URL(url).readText()

    这代码还要不要写了?

    啊?

    RxJava都不用了……

    可以变成这样:

    fun test() {
        async {
            val html = readBlogHtml("blog")
            uiThread { update(html) }
        }
    }
    
    public fun readBlogHtml(blog: String) : String = readHtml(assembleUrl(blog))
    
    private fun assembleUrl(blog: String?): String = "http://$blog.tumblr.com/page/"
    
    public fun readHtml(url: String) : String = URL(url).readText()

    啊??

  • 相关阅读:
    添加事件(jquery)
    闭包导致的问题
    学习之js绑定事件
    第二条 一个类如果有多个参数,考虑用Builder构造者模式
    用Intellij IDEA 创建第一个maven项目!
    OrderSessionHelper查看订单在session是否存在的辅助类
    css——overflow
    css——盒子
    css——外部样式
    css——权重叠加
  • 原文地址:https://www.cnblogs.com/chihane/p/5020109.html
Copyright © 2020-2023  润新知