当我写这篇文章的时候,我的老师正在讲解析。他把它定义为字面上传递一个值,声称它们是可以互换的,并且意味着同样的事情。
他的话令人沮丧地模棱两可。解析的行为是什么?它只是一般地设置一个值吗?它只与参数有关吗?它是值的输入吗?我知道通过引用解析是当你引用某些东西时,例如输入设置为值“1”的变量“A”,而值是直接输入一个值,例如“1”或字符串“Hello”。
我唯一能(勉强)编写的语言是 Python。
答案1
不要沮丧。
这是“按引用传递”与“按值传递”的问题。
我刚刚在堆栈溢出:
假设我想与您分享一个网页。
如果我告诉你 URL,我就是传递引用。你可以使用该 URL 查看我能看到的相同网页。如果该页面发生更改,我们都会看到更改。如果你删除 URL,你所做的只是破坏对该页面的引用 - 你并没有删除实际页面本身。
如果我打印出该页面并将打印件交给您,则我传递的是值。您的页面是原始页面的断开副本。您将看不到任何后续更改,并且您所做的任何更改(例如,在打印件上涂鸦)都不会显示在原始页面上。如果您销毁打印件,则您实际上已经销毁了对象的副本 - 但原始网页仍然完好无损。