首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kotlin-native有析构函数吗?

kotlin-native有析构函数吗?
EN

Stack Overflow用户
提问于 2017-06-25 23:33:54
回答 1查看 4.5K关注 0票数 11

在kotlin原生中,有一个memScoped函数,当控制超出作用域时,它会自动释放分配的内存。有没有类似于局部对象的析构函数?

EN

回答 1

Stack Overflow用户

发布于 2017-06-26 15:46:00

当前的Kotlin/Native没有提供当内存中不再需要某个对象时调用方法的机制( Java speech中的终结器),但内联lambda很容易允许实现机制,类似于C++中的RAII。例如,如果您想确保某些资源总是在离开某个作用域后释放,您可以这样做:

代码语言:javascript
复制
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") 
   }
}
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44747862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档