Kotlin 常用代码片段

1.对Glide的扩展


fun ImageView.loadUrl(requestManager: RequestManager = Glide.with(context)
					  , url: String = ""
					  , urls: List<String> = listOf(url)
					  , isRound: Boolean = false
					  , isCrossFade: Boolean = false) {
	if (isRound) {
		ImageLoader.newTask(requestManager).view(this).url(urls).round().crossFade(isCrossFade).start()
	} else {
		ImageLoader.newTask(requestManager).view(this).url(urls).crossFade(isCrossFade).start()
	}
}

//调用的地方
activity.home_iv_top_banner.loadUrl(url = bannerUrl)
activity.home_iv_top_portrait.loadUrl(urls = portraitUrls)
activity.home_iv_top_avatar.loadUrl(url = avatarUrl, isRound = true)
activity.home_iv_top_avatar.loadUrl(urls = avatarUrls, isRound = true)

在Kotlin中,当调用一个Kotlin定义的函数时,可以显示地标明一些参数的名称,而且可以打乱顺序参数调用顺序, 因为可以通过参数名称就能唯一定位具体对应参数。通过以上代码发现kotlin的默认值函数完美解决函数重载问题, 而命名函数解决了函数调用问题,并且实现任意顺序指定参数名调用函数的参数。

顶层函数在java中使用应注意的问题

//通过@file: JvmName("FileFormatUtil")注解,将生成的类名修改为FileFormatUtil,并且调用的时候直接调用FileFormatUtil.formateFileSize()即可
//放在文件顶部,在package声明的前面
@file: JvmName("FileFormatUtil")


package com.zdzyc.kotlin

import java.math.BigDecimal

//这个顶层函数不属于任何一个类,不需要类容器,不需要static关键字
fun formateXX(size: Double): String {
    if (size < 0) {
        return "0 KB"
    }
}

Loading Disqus comments...
Table of Contents