gpt4 book ai didi

android - 开闭原则和扩展函数

转载 作者:搜寻专家 更新时间:2023-11-01 07:41:58 25 4
gpt4 key购买 nike

我了解到开闭原则是允许扩展类并限制修改。所以在Kotlin中,当我们使用扩展函数的时候

  1. 我们是否在扩展一个类
  2. 或者我们正在修改一个类
  3. kotlin 中的扩展函数可以作为开闭原则的例子吗?

我假设扩展意味着应用继承和修改意味着添加或更改现有类的代码。

谢谢

最佳答案

扩展函数专为您想要向内置或第三方类添加函数的情况而设计。默认情况下您不能这样做,因为内置函数不可修改。

将 toUnsigned 方法添加到内置 Byte 类的示例实现:

fun Byte.toUnsigned(): Int {
return if (this < 0) this + 256 else this.toInt()
}

由于 Byte 是一个内置类,您不能直接修改它。但是,您可以按照上面的代码定义一个扩展函数。然后您可以通过以下方式调用扩展函数:

val x: Byte = -1
println(x.toUnsigned()) // Prints 255

请记住,这只是语法糖 - 您实际上并没有修改类或其实例。因此,您必须在任何要使用的地方导入扩展函数/属性(因为它不随类的实例一起携带)。

来源:https://kotlinlang.org/docs/tutorials/kotlin-for-py/extension-functionsproperties.html

关于android - 开闭原则和扩展函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com