擅长:python、mysql、java
<p><code>contraction()</code>操作应该创建并返回一个新的数组,而不是就地修改它作为参数接收到的数组-还应该为返回的数组使用不同的变量名,<em>显然</em>如果同时使用<code>array</code>来命名参数和局部变量,参数将在函数内被覆盖。你知道吗</p>
<p>这与指针无关,而是与正在使用的函数的契约有关。如果必须保留原始的<code>array</code>,那么helper函数需要确保强制执行此限制。注意,在Python中,如果这样做:</p>
<pre><code>array = [1, 2, 3]
f(array)
</code></pre>
<p>由<code>f</code>函数接收的<code>array</code>与声明为它的“外部”的<code>f</code>相同—事实上,<code>f</code>接收的所有内容都是对数组的引用,而不是它的副本—因此,在<code>f</code>内部对数组所做的任何修改都将自然地反映在外部。另外,值得一提的是,Python中的所有参数都得到<a href="https://stackoverflow.com/a/986145/201359">passed by value</a>,并且在该语言中没有指针或按引用传递这样的东西。你知道吗</p>