Kotlin 的隐藏特性
你用 Kotlin 编程多久了? 如果您认为您知道 Kotlin 中的所有可用功能,那么请再想一想。 以下是 Kotlin 中您可能不知道的 5 个功能。
解构
有些人认为破坏只适用于某些语言,如 JavaScript 和 Python。 但是这个功能在 Kotlin 中也可用。
fun main() {
val person = Person("Nishant", 18, 170f)
val numbers = listOf(10, 42, 73, 21)
val (name, height) = person
println("$name is $height cm tall.")
val (a, b, c) = numbers
println(a + b + c) // 10 + 42 + 73 = 125
}
data class Person(
val name: String,
val age: Int,
val height: Float
)
从一个对象,你可以收集它的属性; 并且从列表中,您可以按顺序收集元素。
收藏 KTX
Collections KTX 是一个非常有用的 Kotlin 扩展函数库。 首先,在你的项目中安装依赖,
implementation "androidx.collection:collection-ktx:1.2.0"
这将打开一套全新的功能。
// Combine 2 ArraySets into 1.
val combinedArraySet = arraySetOf(1, 2, 3) + arraySetOf(4, 5, 6)
// Combine with numbers to create a new sets.
val newArraySet = combinedArraySet + 7 + 8
延迟加载
延迟加载是 Kotlin 中最常用于 Android 的一种技术。 程序最初启动时不会加载该变量。 相反,它会在第一次调用时加载。
class MainActivity : AppCompatActivity() {
private val binding by lazy(LazyThreadSafetyMode.NONE) {
/* code runs only after reaching Line 9 */
ActivityMainBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent(binding.root)
}
}
在我们的活动生命周期中,layoutInflater 在 onCreate 方法被触发时被初始化。 在外部初始化绑定变量会导致错误。 但是,当变量被延迟加载时,初始化代码仅在第一次使用时运行。
类型别名
您是否厌倦了每次都定义相同的长数据类型? Kotlin 有一个特性可以让你的代码看起来更好,阅读也更好。
typealias Person = Triple<String, Int, Float>
fun getPerson(): Person {
return Triple("Nishant", 18, 170f)
}
fun setPerson(p: Person) {
// do something here
}
您可以用一个能更好地描述您的代码的词来替换所有长数据类型的实例。
反引号
您是否需要编写一个特定的变量名,但这是 Kotlin 中的一个硬关键字? 在大多数语言中,他们禁止您这样做; 但不是科特林。
fun main() {
println(`this is fun`())
}
fun `this is fun`(): String {
val `object` = "I can be whatever I want"
return `object`
}
这段代码可能不受欢迎,但为了更好地理解,我使用了这个例子。 用反引号命名函数的好地方是当它们是测试函数时。
@Test
fun `return true if date is null`() {
// Your assertions
}
结论
Kotlin 永远不会让你大吃一惊。 它是一种不断发展的编程语言,完美融合了您想要和需要的每个功能。 语言已经有了这么大的飞跃; 未来的更多更新只会让它变得更好。
我希望你喜欢阅读我的文章并学到一些东西。 谢谢结论
Kotlin 永远不会让你大吃一惊。 它是一种不断发展的编程语言,完美融合了您想要和需要的每个功能。 语言已经有了这么大的飞跃; 未来的更多更新只会让它变得更好。
我希望你喜欢阅读我的文章并学到一些东西。 谢谢
关注七爪网,获取更多APP/小程序/网站源码资源!