如何在函数中创建或使用全局变量?
如果我在一个函数中创建一个全局变量,我如何在另一个函数中使用该全局变量?我是否需要将全局变量存储在需要访问的函数的局部变量中?
我知道C中的全局变量有时会有extern
关键字.什么是extern
变量?宣言是什么样的?它的范围是什么?
这与跨源文件共享变量有关,但这是如何工作的?我在哪里用extern
?
我正在创建一个需要登录的应用程序.我创建了主要和登录活动.
在主要活动onCreate
方法中,我添加了以下条件:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
loadSettings();
if(strSessionString == null)
{
login();
}
...
}
Run Code Online (Sandbox Code Playgroud)
onActivityResult
登录表单终止时执行的方法如下所示:
@Override
public void onActivityResult(int requestCode,
int resultCode,
Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case(SHOW_SUBACTICITY_LOGIN):
{
if(resultCode == Activity.RESULT_OK)
{
strSessionString = data.getStringExtra(Login.SESSIONSTRING);
connectionAvailable = true;
strUsername = data.getStringExtra(Login.USERNAME);
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是登录表单有时会出现两次(login()
方法被调用两次),当手机键盘滑动时,再次出现登录表单,我猜问题是变量strSessionString
.
有没有人知道如何设置变量global以避免在用户已经成功验证后出现登录表单?
我有一个JavaScript中的全局变量(实际上是一个window
属性,但我认为不重要)已经填充了以前的脚本,但我不希望以后运行的另一个脚本看到它的值或者它是偶数定义.
我已经把some_var = undefined
它用于测试目的,typeof some_var == "undefined"
但我真的不认为这是正确的方法.
你怎么看?
我有一个问题,我在控制器中的范围初始化变量.然后在用户登录时在另一个控制器中进行更改.此变量用于控制导航栏等内容,并根据用户类型限制对站点部分的访问,因此保持其值非常重要.它的问题在于初始化它的控制器,通过角度再次调用,然后将变量重置为其初始值.
我认为这不是声明和初始化全局变量的正确方法,它不是真正的全局变量,所以我的问题是什么是正确的方法,是否有任何关于使用当前版本的角度工作的好例子?
研究一个简单的HTMLElement包装器的想法我偶然发现了Internet Explorer和Chrome的以下内容:
对于DOM树中具有ID的给定HTMLElement,可以使用其ID作为变量名来检索div.所以对于一个喜欢的div
<div id="example">some text</div>
Run Code Online (Sandbox Code Playgroud)
在Internet Explorer 8和Chrome中,您可以执行以下操作:
alert(example.innerHTML); //=> 'some text'
Run Code Online (Sandbox Code Playgroud)
要么
alert(window['example'].innerHTML); //=> 'some text'
Run Code Online (Sandbox Code Playgroud)
那么,这是否意味着DOM树中的每个元素都转换为全局命名空间中的变量?它是否也意味着可以使用它作为getElementById
这些浏览器中方法的替代品?
我从阅读文档中了解到,Python有一个单独的函数命名空间,如果我想在该函数中使用全局变量,我需要使用global
.
我正在使用Python 2.7,我尝试了这个小测试
>>> sub = ['0', '0', '0', '0']
>>> def getJoin():
... return '.'.join(sub)
...
>>> getJoin()
'0.0.0.0'
Run Code Online (Sandbox Code Playgroud)
即使没有,事情似乎也很好global
.我能够毫无问题地访问全局变量.
我错过了什么吗?另外,以下是来自Python文档:
全局语句中列出的名称不能定义为形式参数,也不能定义为for循环控制目标,类定义,函数定义或import语句.
虽然形式参数和类定义对我有意义,但我无法理解for循环控制目标和函数定义的限制.
由于这样的混乱,我知道我应该首先避免使用全局变量,但如果我要使用它们,以下是使用它们的有效方法吗?(我试图调用在单独函数中创建的变量的全局副本.)
x = "somevalue"
def func_A ():
global x
# Do things to x
return x
def func_B():
x=func_A()
# Do things
return x
func_A()
func_B()
Run Code Online (Sandbox Code Playgroud)
请问__CODE__
第二函数使用具有全球复制相同的值__CODE__
是__CODE__
使用和修改?在定义后调用函数时,命令有关系吗?
global-variables ×10
python ×3
android ×2
c ×2
javascript ×2
angularjs ×1
dom ×1
extern ×1
gdb ×1
identifier ×1
scope ×1
singleton ×1
state ×1
undefined ×1
variables ×1