Vla*_*kin 9 native kotlin kotlin-native
在kotlin native中有memScoped函数,当控制超出范围时,它会自动释放已分配的内存.有没有像本地对象的析构函数?
Nik*_*tti 13
当内存中不再需要某个对象(Java语音中的终结器)时,当前的Kotlin/Native不提供调用方法的机制,但内联lambda很容易实现机制,类似于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")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2816 次 |
| 最近记录: |