gpt4 book ai didi

scala - Scala 可以通过引用调用吗?

转载 作者:行者123 更新时间:2023-12-03 12:03:43 27 4
gpt4 key购买 nike

我知道 Scala 支持来自 ALGOL 的按名称调用,我想我明白这意味着什么,但是 Scala 可以像 C#、VB.NET 和 C++ 一样执行按引用调用吗?我知道 Java 不能按引用调用,但我不确定这种限制是否完全是由于语言或 JVM。

当您想将庞大的数据结构传递给方法,但又不想复制它时,这会很有用。在这种情况下,通过引用调用似乎是完美的。

最佳答案

Java 和 Scala 都专门使用按值调用,除了值是原始值或指向对象的指针。如果您的对象包含可变字段,那么 this 和 call by reference 之间几乎没有实质性区别。

由于您总是传递指向对象而不是对象本身的指针,因此您不会遇到必须重复复制一个巨大对象的问题。

顺便说一句,Scala 的按名称调用是使用按值调用实现的,值是一个(指向 a 的)函数对象,它返回表达式的结果。

关于scala - Scala 可以通过引用调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4790050/

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