Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么是C++;Kotlin上的指针?_C++_Kotlin - Fatal编程技术网

C++ 什么是C++;Kotlin上的指针?

C++ 什么是C++;Kotlin上的指针?,c++,kotlin,C++,Kotlin,我有一个交换两个变量值的方法 void switchValue(int* a , int* b){ //logic here... } C++的工作级别低于Kotlin,但我可以在Kotlin上执行此操作吗 使用Kotlin或Java中的函数不可能做到这一点,因为引用只能通过值传递。(除非您对使用包装器类感到满意,并交换两个包装器实例所引用的内容,否则这将很笨拙。) 这可能是交换两个变量值的最简单方法: var x = 0 var y = 1 //swap: x = y.also

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

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)
fun swap(第一个:KMutableProperty0,第二个:KMutableProperty0){
first.set(second.get()。也是{second.set(first.get())})
}
交换(::x,::y)

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

在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)
fun swap(第一个:KMutableProperty0,第二个:KMutableProperty0){
first.set(second.get()。也是{second.set(first.get())})
}
交换(::x,::y)

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

切换两个变量的值是什么意思?你的意思是交换?也许你正在寻找通过引用传递?注意:Kotlin问题中的交换函数根本没有有效的答案…有关Kotlin中通过引用传递的更多信息,请参阅(TL;DR这是一个黑客,请尝试远离这类事情)“切换两个变量的值”是什么意思?你的意思是交换?也许你在寻找通过引用传递?注意:Kotlin问题中的交换函数根本没有有效的答案…有关Kotlin中通过引用传递的更多信息,请参阅(TL;DR,这是一个黑客,请尝试远离这类事情)我不是Kotlin专家,但这看起来应该行得通——不确定为什么唐沃提不是科特林专家,但这看起来应该行得通——不确定为什么唐沃提会投票