gpt4 book ai didi

c++ - 什么相当于 Kotlin 上的 C++ 指针?

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:49 31 4
gpt4 key购买 nike

我有一个方法可以交换两个变量的值。

void switchValue(int* a , int* b){
//logic here...
}

C++ 的工作级别低于 Kotlin,但我可以在 Kotlin 上执行此操作吗?

最佳答案

用 Kotlin 或 Java 中的函数不可能做到这一点,因为引用只能按值传递。 (除非您对使用包装器类感到满意并且交换两个包装器实例所引用的内容,否则这会很笨拙。)

这可能是交换两个变量值的最简单方法:

var x = 0
var y = 1

//swap:
x = y.also { y = x }

编辑:一些更正。您可以使用反射来处理属性。不过,这不适用于局部变量。

fun <T> swap(first: KMutableProperty0<T>, second: KMutableProperty0<T>) {
first.set(second.get().also { second.set(first.get()) })
}

swap(::x, ::y)

在我看来,这种做法(远程更改变量值)虽然在 C/C++ 中很常见,但应该避免。

关于c++ - 什么相当于 Kotlin 上的 C++ 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59631840/

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