scope 相关问题

范围是一个封闭的上下文,其中值和表达式相关联。使用此标记可以了解不同类型范围的问题以及范围可能不清楚的问题。

本地范围与非本地范围Python

我试图理解 Python 中的作用域,但对下面的示例感到困惑(我使用的是 Python 3.12.2)- 1. 一 = 10 def myfunc(): a = 2 打印(一) 打印(一) myfunc() 这给出了输出...

回答 1 投票 0

变量提升与编程语言其他方面之间的交互

以下 Python 程序 A 按预期输出 1,而以下 Python 程序 B 则引发未绑定局部变量 x 错误,这与直觉相反。 方案A: def f(): 打印(x) x = 1 F() 普...

回答 1 投票 0

C 中使用可变参数全局定义数组

代码如下: int 边缘计数 = 0; int 边数 = 0; 无效addEdge() { // 一些代码 边数++; } int EdgeWeightArray[numOfEdges]; // 错误 我想要带有变量的全局数组

回答 4 投票 0

变量提升与编程语言其他方面之间的交互[关闭]

以下 Python 程序 A 按预期输出 1,而以下 Python 程序 B 则引发未绑定局部变量 x 错误,这与直觉相反。 方案A: def f(): 打印(x) x = 1 F() 普...

回答 1 投票 0

模块脚本范围的变量在模块函数的 ArgumentCompleter 块中不可访问

测试.psm1: $script:ProviderItem = [System.Management.Automation.CompletionResultType]::ProviderItem 函数 Get-Files {Get-ChildItem -Path 'C:\Windows\System32\WindowsPowerShell 1.0 n-US\

回答 1 投票 0

UnboundLocalError:无法访问未与值关联的局部变量“currentPlayer”

我不明白这个错误。 'currentPlayer' 在第 13 行声明和定义,它存在于全局。为什么它在我的 ToggleTurn() 方法中未绑定? 错误: 回溯(最近一次调用最后...

回答 1 投票 0

如何在 Python 中创建块作用域变量?

采用以下 Perl 代码: $a = 5; 如果($a==5) { 打印$a; 我的 $a = 8; 打印$a; } 打印$a; 这输出 585 因为我的 $a 创建了一个新的词法变量,其作用域为 if ...

回答 2 投票 0

调用即发即忘方法 - 哪个范围?

我重写了ImageAnalysys.Analyzer的analyze()方法,所以我希望它尽快执行并返回。我有一个想要从analyze() 调用的方法,它将操纵一些

回答 1 投票 0

C++:在另一个函数中声明一个函数有什么用?

Stanley Lippman 的《C++ 入门》第 234 页提到 通常,在本地声明函数是一个坏主意。然而, 为了解释范围如何与重载相互作用,我们将违反......

回答 2 投票 0

命名空间和范围

以下代码无法运行: 它给出“ UnboundLocalError:赋值前引用的局部变量'p'” p=“你好” 定义 z(): 如果 p ==“你好”: p="2&q...

回答 1 投票 0

有没有办法使用导入的库从浏览器中的字符串运行 JavaScript?

我有一个函数可以让我在浏览器中运行 JavaScript 函数: 导出异步函数executeFunction(数据:LoadOutput,输入:Record):Promise { 让参数...

回答 1 投票 0

作用域块之后堆栈是否被释放?

在C/C++中,完成一个作用域块后堆栈上的内存是否被释放并且可以重用吗? 例如,假设进入函数后堆栈上有 100 个空闲字节。 无效函数(...

回答 1 投票 0

当输入字符串超出范围时增强正则表达式匹配

我将以下内容放入我的字符串实用程序中(主要作为记忆辅助): boost::smatch regexMatch(std::字符串输入,std::字符串正则表达式) { boost::smatch 匹配; boost::regex_match(输入,匹配,

回答 1 投票 0

我可以将受保护的函数作为可调用函数传递吗?

我有一个带有可调用参数的函数: 公共静态函数设置(路由器$路由器,注入器$injector,可调用$toRouterCallable):void 我想从另一个班级调用它并通过

回答 1 投票 0

“return func”和“return func()”之间的区别

首先,如果这是一个重复的问题,我很抱歉。 假设我有一个简单的 python 代码,名为decorator.py,其中带有装饰器: `def 装饰器(函数): def 包装器(): 打印(“B...

回答 1 投票 0

隐藏包级函数的递归函数

以下输出“2”。这是为什么?它不应该递归并打印“210”吗? 包主 var f = func(x int) {} 函数酒吧(){ f := func(x int) { ...

回答 2 投票 0

使用箭头函数语法时,无法在回调作用域内访问变量(警告:未定义的变量)

我需要使用可变变量在 array_map() 的回调内部定义 lambda 函数。对于我引用的变量,我收到“未定义的变量”警告。

回答 2 投票 0

C 中全局变量的重新分配

据我了解,当从翻译单元调用函数并且该函数使用该翻译单元的全局变量时,变量地址是不可更改的。如果从 t 调用功能...

回答 1 投票 0

在 JavaScript 中从一个文件调用另一个文件

我知道这个问题已经被普遍讨论过,但我的具体情况有所不同。我需要从一个文件中调用另一个文件中的函数,但我无法更改另一个文件中的代码....

回答 1 投票 0

为什么我在第二个错误中遇到错误,但在第一个错误中却没有?

函数求和(a,b){ c=a+b; } 总和(10,20) 文档.write(c); 函数求和(a,b){ var c=a+b; } 总和(10,20) 文档.write(c) </scr...</desc> <question vote="1"> <pre><code>&lt;script&gt; function sum(a,b){ c=a+b; } sum(10,20) document.write(c); &lt;/script&gt; &lt;script&gt; function sum(a,b){ var c=a+b; } sum(10,20) document.write(c) &lt;/script&gt; </code></pre> <p>在后者中,为什么会出现错误,显示'c'未定义。难道只是因为我在变量 c 之前写了 'var' 关键字吗?</p> </question> <answer tick="false" vote="0"> <p>这里发生了一些事情。</p> <p>在 JavaScript 中,如果有多个同名函数,则仅使用最后一个函数。在您的示例中,使用带有 <pre><code>var</code></pre> 的那个,而忽略第一个。这是因为 JavaScript 将变量和函数声明“提升”到每个作用域的开头。尽管是一种解释性语言,但首先要分析代码,而这种“提升”是该过程的一部分。</p> <p>使用 <pre><code>var</code></pre> 声明变量将其限制在局部范围内。在第二个函数中,您将 <pre><code>c</code></pre> 限制为仅在该函数中可用。如果删除 <pre><code>var</code></pre>,c 将是一个全局变量,因此可以从函数外部访问。 (我建议始终使用 <pre><code>var</code></pre> 和 <pre><code>let</code></pre> 以避免与全局变量混淆。此外,在示例函数中,理想情况下它们应该返回值而不是设置全局变量。)</p> <p>错误发生在第 6 行:第一个 <pre><code>document.write(c);</code></pre> 因为您在第二个函数中使用了 <pre><code>var</code></pre>,所以 <pre><code>c</code></pre> 不能用作全局变量,因此代码失败并显示 <pre><code>ReferenceError: c is not defined</code></pre>。</p> </answer> </body></html>

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.