gpt4 book ai didi

function - 为什么传递给函数的所有数据都是 "explicitly passed"?

转载 作者:行者123 更新时间:2023-12-02 19:04:21 26 4
gpt4 key购买 nike

数据“显式”传递给函数,而方法“隐式传递”给调用它的对象。

请您解释一下这两种传递数据的方式之间的区别? java 或 c# 中的示例会有所帮助。

最佳答案

Java 和 Python 语言就是说明这一点的好例子。在 Python 中,每当定义类的方法时都会显式传递对象:

class Example(object):

def method(self, a, b):
print a, b
# The variable self can be used to access the current object

这里,对象self作为第一个参数显式传递。这意味着

e = Example()
e.method(3, 4)

如果 method 是一个函数,则实际上与调用 method(e, 3, 4) 相同。

但是,在 Java 中,第一个参数没有明确提及:

public class Example {
public void method(int a, int b) {
System.out.println(a + " " + b);
// The variable this can be used to access the current object
}
}

在 Java 中,它是:

Example e = Example();
e.method(3, 4);

实例e也被传递给method,但可以使用特殊变量this来访问它。

当然,对于函数,每个参数都是显式传递的,因为每个参数都在函数定义和调用函数的位置中提到。如果我们定义

def func(a, b, c):
print a, b, c

然后我们可以使用 func(1, 2, 3) 调用它,这意味着所有参数都被显式传递。

关于function - 为什么传递给函数的所有数据都是 "explicitly passed"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761204/

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