跳到主要内容

1 篇博文 含有标签「扩展函数」

查看所有标签

Kotlin 扩展函数实战:告别 Utils 工具类的优雅姿势

· 阅读需 5 分钟
重庆 Kotlin User Group

你有没有翻过自己半年前写的 Kotlin 代码?我最近就翻了一次,发现了一个 StringUtils.kt 文件,里面躺着一堆这样的函数:

object StringUtils {
fun isEmail(s: String): Boolean {
return s.matches(Regex("^[\\w.-]+@[\\w.-]+\\.\\w+$"))
}

fun isEmpty(s: String?): Boolean {
return s == null || s.isBlank()
}

fun truncate(s: String, maxLen: Int): String {
return if (s.length > maxLen) s.take(maxLen) + "..." else s
}
}

// 调用时
if (StringUtils.isEmail(input)) { ... }
val name = StringUtils.truncate(user.name, 20)

每次调用都要先找到对应的 XxxUtils 对象,再调方法——这浓浓的 Java 味儿,让我意识到:我写了两年 Kotlin,居然一直在写 Java。