kotlin native是否有析构函数?

kotlin native是否有析构函数?,kotlin,native,kotlin-native,Kotlin,Native,Kotlin Native,在kotlin native中,有一个MemScope函数,当控件超出作用域时,它会自动释放分配的内存。 对于本地对象,是否有类似析构函数的情况?当前KTLIL/NEATE在内存中不再需要某些对象时(java语言中的终结器)不提供调用方法的机制(但在Java语言中,终结器)很容易允许实现机制,类似于C++中的RAII。例如,如果要确保某些资源总是在离开特定范围后释放,可以执行以下操作: class Resource { fun take() = println("took") fun f

在kotlin native中,有一个MemScope函数,当控件超出作用域时,它会自动释放分配的内存。
对于本地对象,是否有类似析构函数的情况?

当前KTLIL/NEATE在内存中不再需要某些对象时(java语言中的终结器)不提供调用方法的机制(但在Java语言中,终结器)很容易允许实现机制,类似于C++中的RAII。例如,如果要确保某些资源总是在离开特定范围后释放,可以执行以下操作:

class Resource {
  fun take() = println("took")
  fun free() = println("freed")
}

inline fun withResource(resource: Resource, body: () -> Unit) =
 try {
   resource.take()
   body()
 } finally {
   resource.free()
 }

fun main(args: Array<String>) {
   withResource(Resource()) { 
       println("body") 
   }
}
类资源{
fun TACK()=println(“已获取”)
fun free()=println(“freed”)
}
inlinefun-withResource(资源:资源,主体:()->单位)=
试一试{
资源获取()
正文()
}最后{
resource.free()
}
趣味主线(args:Array){
withResource(Resource()){
println(“主体”)
}
}

是否有添加析构函数的计划?或者你宁愿不要,因为这种确定性行为在Kotlin的其他目标中是不可能实现的?目前还没有添加通用析构函数的计划。然而,在Kotlin/Native中,弱引用也可以实现类似的功能。