gpt4 book ai didi

properties - 可变属性的 Kotlin 扩展函数

转载 作者:行者123 更新时间:2023-12-02 12:39:57 25 4
gpt4 key购买 nike

我正在尝试在可变属性上设置扩展函数,以便我可以在扩展函数中重新分配该属性。我想知道这是否可能。

我的目标是制作Date 扩展以便于访问。例如:

fun Date.addDays(nrOfDays: Int): Date {
val cal = Calendar.getInstance()
cal.time = this
cal.add(Calendar.DAY_OF_YEAR, nrOfDays)
return cal.time
}

此函数使用 Calendar 对象向日期添加天数。问题是每次我都必须返回一个新日期,这可能会在您每次使用此函数时重新分配时造成混淆。

我尝试过的:

fun KMutableProperty0<Date>.addDays(nrOfDays: Int) {
val cal = Calendar.getInstance()
cal.time = this.get()
cal.add(Calendar.DAY_OF_YEAR, nrOfDays)
this.set(cal.time)
}

不幸的是,这不能用于 Date 对象。

这有可能吗?

最佳答案

无需返回新的Date 并尝试更新您的属性,您只需改变您的属性已经拥有的Date:

fun Date.addDays(nrOfDays: Int) {
val cal = Calendar.getInstance()
cal.time = this
cal.add(Calendar.DAY_OF_YEAR, nrOfDays)
this.time = cal.timeInMillis
}

关于properties - 可变属性的 Kotlin 扩展函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38308231/

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