问题标签 [global-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
5546 浏览

c++ - 防止链接器删除全局变量

我使用静态全局变量构造函数来方便地注册函数,这个想法是这样的:

现在我可以通过这种方式注册函数(我用它来实现某种反射):

问题是,如果我在静态库中使用它,有时链接器会检测到编译单元没有被使用,它会丢弃整个东西。所以没有构造全局变量,也没有注册函数……

我的问题是:我能做些什么来解决这个问题?在初始化期间在每个编译单元中调用虚拟函数似乎会触发全局变量的构造,但这感觉不是很安全。还有什么建议吗?

0 投票
8 回答
94257 浏览

xml - 在 XSLT 中,如何从不同的范围增加全局变量?

我正在处理一个 XML 文件,我想在其中计算节点数,以便在编写新节点时可以将其用作 ID。

目前我有一个名为“counter”的全局变量。我可以在模板中访问它,但我还没有找到在模板中操作它的方法。

这是我的 XSLT 文件的精简版本:

任何建议如何从这里开始?

0 投票
3 回答
25893 浏览

c# - 如何从控制台应用程序中访问 Properties 命名空间?

我正在尝试存储/检索存储在应用程序设置中的值。从我的控制台应用程序中,我似乎无法访问 Properties.Setting 命名空间。我的网上冲浪显示,在控制台应用程序中可能需要做更多的工作。如何做到这一点?

谢谢!

0 投票
4 回答
233643 浏览

python - 为什么在分配给函数中的全局变量时会出现“分配前引用”错误?

在 Python 中,我收到以下错误:

在文件的开头(在错误来自的函数之前),我total使用global关键字声明。然后,在程序主体中,在调用使用的函数之前total,我将其分配为 0。我尝试在不同的地方将其设置为 0(包括文件的顶部,就在它被声明之后),但是我无法让它工作。

有谁看到我做错了什么?

0 投票
13 回答
20118 浏览

c - 为什么全局变量不好,在单线程、非操作系统、嵌入式应用程序中

我看到的大多数使用全局变量的反对意见都是有道理的,因为它们涉及多线程、线程安全等问题。

但是在一个小的、单线程的、非操作系统的情况下,你有什么反对意见?就我而言,如果重要的话,我正在用“C”编写我的嵌入式系统。我也是该产品的唯一开发人员。

为什么消除全局变量会使我的代码更好?

(在阅读了几个回复后,我意识到我也应该指出这个系统没有动态内存分配(例如 malloc)。所有内存都是在编译时静态分配的。)

0 投票
4 回答
14441 浏览

java - 调用全局数组

我目前正在尝试使用 2D 数组绘制形状。在我的课堂上有一个全局数组定义为public char canvas[][];

到目前为止,我只声明了数组char canvas[][] = new char[height][width];

如果这个数组已经被声明了,并且我不应该修改给定的代码,我该如何调用该数组的一个实例以便我可以使用它?

谢谢。

(编辑)

0 投票
3 回答
2461 浏览

smalltalk - 如何在 Squeak 中创建全局变量?

我不是指类变量。我想要一个可以在任何地方使用的变量。我应该在哪里定义它?[吱吱声]

0 投票
4 回答
16054 浏览

asp.net - 什么更好:静态变量 VS Asp.NET 应用程序会话?

假设您想在 ASP.NET Web 应用程序中的所有线程/会话之间共享一些资源,例如类或变量。什么是更好的?

1) 具有对该静态变量的线程安全访问器的静态变量?

2) 还是 ASP.NET 应用程序会话变量?

0 投票
5 回答
8082 浏览

c# - 如何在没有全局变量的情况下保留数据?

我习惯于脚本语言。PHP、Javascript 等,我编写了一些相对简单的 Java 和 C# 应用程序。这是一个我反复需要答案的问题,我想我不是唯一一个。

假设我在 Javascript 中。

我有由 GUI 调用的函数 A(),它检索一些值。

也由 GUI 调用的函数 B() 需要该值,但函数 B() 将被调用任意次数,在 A() 之后的任意时间长度。

我不希望 A() 每次都重新计算值。

一个示例是登录凭据。A() 要求输入用户名,B() 每次调用时都使用该值附加到日志中。

为此,我可能只使用一个全局变量。

现在,C#。没有全局变量!我该怎么做?

编辑: 享受答案,但有很多“尽量不要使用全局变量”的评论。我确实理解,但我想听听此要求的替代模式。

0 投票
6 回答
4661 浏览

asp.net - Global.asax、全局变量和用代码编辑

我有两个问题:

1) 我的网站在我的global.asax文件中声明了一些全局变量。它们是简单的、小的键/值对,并且只有少数几个。对于我网站上几乎每个页面都需要访问的小值,这是一个很好的做法吗?将它们存储在数据库中并需要进行数据库查找似乎会浪费资源用于不快速变化的值。

2)如果其中一个值每周更改一次,是否可以允许用户使用表单或其他方式编辑全局变量?

例子:

在上面的示例中,系统需要知道当前日期在哪一周(其中 15 周)。因此,每周一早上一次,“week_current”值需要更改。

我可以很容易地做到这一点,但是有没有办法让用户在不接触代码的情况下更改这个值?