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"
}
}