gpt4 book ai didi

arrays - Scala,数组总是按名称调用,对吧?

转载 作者:行者123 更新时间:2023-12-05 09:24:20 25 4
gpt4 key购买 nike

在 Scala 中,数组总是通过引用传递,按名称调用,对吧?

所以,

def fun(ar: Array[Int]) = {}

等于

def fun(ar: => Array[Int]) = {}

谢谢。

最佳答案

In Scala, arrays are always passed by reference, call-by-name, right?

没有。在 Scala 中,就像在 Java、C、C++(默认)、C#(默认)、Smalltalk、Ruby、Python 和几乎所有其他曾经创建的面向对象语言中一样,参数是按值传递的。

可以显式声明一个按名称的参数,然后(但只有这样)与该参数对应的参数将按名称传递。 Scala 永远不会通过引用传递。

So,

def fun(ar: Array[Int]) = {}

is equal to

def fun(ar: => Array[Int]) = {}

不,不是。在第一种情况下,数组(或者更确切地说是指向数组的指针)将按值传递,在第二种情况下按名称传递。在这两种情况下都不会通过引用传递。

关于arrays - Scala,数组总是按名称调用,对吧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13461156/

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