scope相关内容

Java switch:变量声明和范围

Java 编译器如何处理下面的 switch 块?'b' 变量的作用域是什么? 请注意,“b"变量仅在 switch 语句的第一个分支中声明.尝试在第二个分支中声明它也会导致“重复的局部变量"编译错误. int a = 3;开关(一){案例0:诠释 b = 1;System.out.println("案例 0: b = " + b);休息;情况1://以下行无法编译:b 可能尚未初始化/ ..

C++ - 未初始化向量的值<int>

我从 this question 全局/静态未初始化 int 的值将为 0.这个表示对于向量,将调用对象类型的默认构造函数. 我无法弄清楚 - 当我有 vector 时会发生什么v(10) 在本地函数中.int 的默认构造函数是什么?如果我有 vectorv(10) 全局声明? 我看到的是 vector本地函数中的 v(10) 导致变量为 0 - 但我不确 ..
发布时间:2022-01-18 23:34:00 C/C++开发

委托中的变量范围

我发现以下内容很奇怪.再说一次,我主要在动态语言中使用闭包,这不应该被同一个“错误"怀疑.以下使编译器不高兴: VoidFunction t = delegate { int i = 0;};诠释 i = 1; 上面写着: 名为“i"的局部变量不能在此范围内声明,因为它会给'i'赋予不同的含义,已在“孩子"中使用表示其他东西的范围 所以这基本上意味着在委托中声明的变量将具有在其中声 ..
发布时间:2022-01-18 12:46:57 C#/.NET

语句块中的变量范围

for (int i = 0; i 根据我对范围的理解,第一个示例应该没问题.他们都不被允许的事实似乎更加奇怪.当然,“我"要么在范围内,要么不在范围内. 我不明白范围是否有一些不明显的地方,这意味着编译器真的无法解决这个问题?或者只是保姆国家编译主义的一个例子? 解决方案 根据我对范围的理解,第一个示例应该没问题. 您对范围的理解很好.这不是范围界定错误.这是简单名称 ..
发布时间:2022-01-17 08:12:59 C#/.NET

cmake,迷失在全局变量的概念中(以及 PARENT_SCOPE 或 add_subdirectory 替代方案)

我有一个 cmake 项目,其中有一些模块,我正在使用 Find-*.cmake 将共享模块包含在应用程序中.由于没有考虑到我添加的每个模块,我为链接器定义了一种全局 LIB 变量: # 在 Find-*.cmake 或模块的 CMakeLists.txt 中:设置(LIB ${LIB} ...) 所以在使用某些模块的最终应用程序之一中,我可以这样做: target_link_librari ..
发布时间:2022-01-15 22:36:50 其他开发

为什么本地定义的变量可以从另一个函数中成功访问?

见下面的代码.将两个文件放在同一目录中,然后从 PS ISE 运行 Form1.ps1 如您所见,(本地)变量 $localVar 是在事件处理程序 $button2_Click 中定义的.因此,我假设 $localVar 不会/不可能存在于 $button2_Click 范围之外,范围由定义事件处理程序的大括号定义. 但是,如您所见,我使用 $localVar 的内容在函数 fA 中 ..
发布时间:2022-01-15 11:52:29 其他开发

C++ 中的多个命名空间声明

这样替换是否合法: 命名空间 foo {命名空间栏 {巴兹();}} 类似这样的: 命名空间 foo::bar {巴兹();} ? 解决方案 您可以将命名空间合并为一个名称并使用新名称(即 Foobar). namespace Foo { namespace Bar {无效 some_func() {printf("Hello World.");}}}命名空间 Foobar = ..
发布时间:2022-01-14 23:52:29 C/C++开发

何时使用“::"对于 C++ 中的全局范围?

每隔一段时间,我都会偶然发现一些我正在维护的代码,这些代码挑战了我对代码风格的看法.今天是那些日子之一...... 我知道您为什么要使用范围运算符来定义全局范围.实际上,这里 没有范围的范围解析运算符是一个很好的链接告诉你为什么. 但是,我今天看到了一些让我思考的东西.所有有问题的类都被包装到项目的命名空间中(很好!),但我确实看到了全局范围运算符的大量使用.也就是说,它被用于 C 库 ..
发布时间:2022-01-14 23:41:35 C/C++开发

NameError 在 python 中使用 execfile

我的应用程序有一个使用 execfile 动态执行 python 脚本的按钮.如果我在脚本中定义一个函数(例如.spam())并尝试在另一个函数中使用该函数(例如.eggs()),我会收到此错误: NameError: 未定义全局名称“垃圾邮件" 从 eggs() 中调用 spam() 函数的正确方法是什么? #mainprogram.py类主程序():def runme(自我):执行文件( ..
发布时间:2022-01-14 23:40:31 Python

在一个 .R 文件中定义所有函数,从另一个 .R 文件中调用它们.如果可能,怎么做?

如何在另一个文件(比如 xyz.R)中调用 abc.R 文件中定义的函数? 一个补充问题是,如何从 R 提示符/命令行调用 abc.R 中定义的函数? 解决方案 你可以调用 source("abc.R") 后跟 source("xyz.R")(假设这两个文件都在您当前的工作目录中. 如果 abc.R 是: fooABC ..
发布时间:2022-01-14 23:29:56 其他开发

为什么从类中访问类变量需要“self".在 Python 中?

可能重复: Python“自我"解释 我正在学习 Python,我有一个关于从此类的方法访问类变量的问题,理论多于实践. 例如我们有: class ExampleClass:x = 123def example_method(self):打印(self.x) 为什么一定要准确地写出self.x,而不仅仅是x?x 属于类的命名空间,使用它的方法也属于它.我错过了什么?这种风格背后的 ..
发布时间:2022-01-14 23:04:56 Python

通过 :: 调用包中的函数是一种好习惯吗

我正在编写一些 R 函数,这些函数在 stringr 和 base64enc 等其他包中使用了一些有用的函数.不调用 library(...) 或 require(...) 先加载这些包,而是使用 ::直接引用我需要的函数,比如 stringr::str_match(...)? 在一般情况下这是一个好习惯吗?或者会引发什么问题? 解决方案 这一切都取决于上下文. :: 主要是在 ..
发布时间:2022-01-14 23:00:20 其他开发

在函数中创建一个类并访问在包含函数的范围内定义的函数

编辑: 在这个问题的底部查看我的完整答案. tl;dr answer:Python 具有静态嵌套的作用域.静态aspect 可以与隐式变量声明交互,产生不明显的结果. (这可能特别令人惊讶,因为该语言通常具有动态特性). 我认为我对 Python 的范围规则有很好的处理,但这个问题让我彻底陷入困境,我的 google-fu 让我失望了(我并不感到惊讶 - 看看问题标题;) ..
发布时间:2022-01-14 22:53:36 Python

全局范围与全局命名空间

我看到了这两个短语的用法:全局作用域和全局命名空间.它们有什么区别? 解决方案 在 C++ 中,每个名称都有其不存在的范围.范围可以通过多种方式定义:它可以通过 namespace、functions、classes 和 { }. 所以一个命名空间,无论是全局的还是其他的,都定义了一个范围.全局命名空间是指使用::,在这个命名空间中定义的符号被称为具有全局作用域.默认情况下,符号存在 ..
发布时间:2022-01-14 22:53:26 C/C++开发

Fortran 是否通过函数和子例程调用保留内部变量的值?

经过痛苦的调试,我相信我找到了 Fortran 的一个独特属性,我想在 stackoverflow 上验证它. 我注意到的是,至少,内部逻辑变量的值在函数或子例程调用中被保留. 这里有一些示例代码来说明我的观点: PROGRAM function_variable_preserve隐式无字符(len=8)::func_negative_or_not!声明函数名整数 :: 输入字符(l ..
发布时间:2022-01-14 09:25:29 其他开发