每个 Android 开发者都应该知道的 7 个 Kotlin 扩展
Kotlin是专为Android和 JVM 即Java虚拟机设计的编程语言。该语言在开发人员中非常流行,您需要知道 Google 已经宣布 Kotlin 为Android 应用程序开发的首选语言。还有各种 Kotlin 扩展可供Android 开发人员和程序员使用,使 Android 开发对他们来说非常容易和方便。此外,这些扩展在集合过滤方面足够聪明,延迟加载意味着只加载那些对于加载更好的内存管理所必需的资源等。
您现在必须好奇地深入了解这些有用的 Kotlin 扩展所具有的属性,以加快Android 开发过程,同时又不影响准确性和灵活性。您是否还在怀疑这些现成的、免版税的扩展的潜力?让我们详细了解每个 Android 开发人员或程序员应该了解的顶级 Kotlin 扩展:
1.安卓KTX
Android KTX 在 Android 开发的社区成员中被称为Kotlin 扩展的集合,而不是单个扩展。无论是提交与 Kotlin 协程、lambda 相关的更改,还是在高阶 Kotlin 函数中传递的命名参数,只要您开始使用这个简洁的 Kotlin 扩展包,所有这些都是可以实现的。
实际上,Android KTX 的每个模块都组织并配备了多个包,其语法有助于管理版本控制,无论是否满足依赖项声明要求。您现在需要做的就是添加依赖存储库
dependencies {
implementation ‘androidx.core:core-ktx:1.0.1’
}
到以 build.gradle 格式保存的 Kotlin 项目文件。
2.火力基地
Firebase 是 Kotlin 扩展,它肯定会改变 Android 开发的未来,以及对积极关注 Android 应用程序的用户体验的管理。好消息来了 - Firebase 的测试版已经上市,它欢迎您使用更新的功能,如果出现错误,可以在您报告它们后纠正。此外,无需担心安装 Firebase 的智能手机或台式机的安全性,因为在线攻击者无法直接控制 Kotlin 接口等信息的安全性。因此,从今天开始,无论是初学者还是经验丰富的 Android 开发人员,都必须精通使用Firebase Kotlin SDK来构建在 Android 上运行良好的高质量应用程序。
3. Double.toPrice()
Double.toPrice() Kotlin扩展是一种以更易读的格式显示价格的好选择。在Java.text.DecimalFormat 类中应用 Double.toPrice() 后,您将看到此扩展如何准确地格式化以数字表示的价格,从而使用户更容易理解价格。如果您是 Android 开发人员或程序员,那么您必须尝试这个有用的扩展,它可以很好地处理应用程序仅根据一组价格格式规则显示的价格。
4. 上下文.screenSize
无法计算安装 Kotlin 的 Android 设备或笔记本电脑的屏幕尺寸?无需担心,因为 Context.screenSize 返回具有适当的长度、宽度和高度像素值的屏幕尺寸。以编程方式,以下代码片段以及 Context.screenSize 扩展将有助于了解更多有关 Context.screenSize 的信息。
val Context.screenSize: Point
get() {
val wm = getSystemService(Context.WINDOW_SERVICE) as WindowManager
val display = wm.defaultDisplay
val size = Point()
display.getSize(size)
return size
}
5. 可空接收器
这个 Nullable Receiver 扩展使用类类型(Nullable)定义扩展函数是精确和灵活的。此外,该扩展通过很好地区分可空和不可空引用来确保Kotlin 中的空安全性,从而消除编译时发生的错误。如果你没有使用这个扩展,那么就有可能收到这种类型的 NPE(空指针异常)
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type User?
6. String.isAlphanumeric
String.isAlphanumeric 扩展验证字符串是否为字母数字。你现在可能会问,“ Kotlin。检查字符串是否是字母数字! ” 在这里,很明显要质疑到底什么是字母数字?请注意,字母数字字符串仅包含 az、A – Z 等字母和 0 到 9 范围内的数字。字母数字字符串不包含特殊符号 %、@、&、$。为了更好地理解这个扩展,请在 Online Kotlin Compiler 上运行以下代码。
fun isLettersOrDigits(chars: String): Boolean {
return chars.matches(“^[a-zA-Z0-9]*$”.toRegex())
}
fun main() {
val chars = “Kotlin2020”
println(“IsAlphaNumeric: ${isLettersOrDigits(chars)}”)
}
7. 字符串.toLocation
这个 String.toLocation 基本上是一个Kotlin 字符串扩展,它将字符串转换为具有一些纵向(如 53.45)和纬度(-0.943)值的位置。此外,使用此扩展程序时无需指定位置提供程序。你现在必须像这样使用这个扩展:
import android.location.Location
fun String.toLocation(provider: String): Location? {
val components = this.split(“,”)
if (components.size != 2)
return null
val lat = components[0].toDoubleOrNull() ?: return null
val lng = components[1].toDoubleOrNull() ?: return null
val location = Location(provider);
location.latitude = lat
location.longitude = lng
return location
}