内置名称空间用法,名称默认为此处,函数局部变量您好,我对模块脚本中的名称空间以及这些脚本中的函数有疑问。
据我了解,定义为Names Default to Here()为true的任何变量都将在“ here”命名空间中分配。 我不确定该命名空间的范围。 “这里”是否总是以完整脚本(例如,在模块内)为范围,还是可以在脚本内创建单个函数局部的变量? 在函数中制作局部变量的正确方法是什么? 有没有一种方法可以将每个函数中定义的变量仅局限于该函数而不是整个脚本的局部变量? 我在想像的是下面的东西。
//Script to define different scopes of variables<BR />Names Default to Here(1); //set variables to be scoped to this script by default<BR />a = 1;<BR />b = 2;<BR /><BR />Function1 = Function({},<BR /> Names Default to Here(1);<BR /> c = 3;<BR />);<BR /><BR />Function2 = Function({},<BR /> Names Default to Here(1);<BR /> d = 4;<BR />);@lbrickweg @jcimini
回复:内置名称空间用法,名称默认为此处,函数局部变量嗯,很抱歉那里的格式
//Script to define different scopes of variables
Names Default to Here(1); //set variables to be scoped to this script by default
a = 1;
b = 2;
Function1 = Function({},
Names Default to Here(1); //set variables set in Function1 to be scoped only to Function1
c = 3;
);
Function2 = Function({},
Names Default to Here(1); //set variables set in Function2 to be scoped only to Function2
d = 4;
);回复:内置名称空间用法,名称默认为此处,函数局部变量名称默认为Here(1)表示在此期间使用/创建的所有不合格符号提交(运行脚本)将位于相同的Here命名空间中。 因此,它比单个JSL文件更广泛。 因此,如果启用名称默认到此处时A.jsl包括B.jsl,则由A和B创建的符号都将在相同的Here命名空间中可用。
对于本地函数,您应该使用本地列表:
/* Default Local */
slow identity = Function({x}, {Default Local},
x squared = x*x; // unqualified name x squared is defaulted to function local
Sqrt(x squared)
);
/* Or list them explicitly */
slow identity = Function({x}, {x squared},
x squared = x*x; // local because we declared it above
Sqrt(x squared)
);
/* Or qualify them */
slow identity = Function({x},
local:x squared = x*x; // qualify to local explicitly
Sqrt(x squared)
);回复:内置名称空间用法,名称默认为此处,函数局部变量知道了! “每次提交”语言非常有帮助。
作为后续措施,当运行来自App Builder的不同模块时,启动.jmpapp时是否包含每个模块的脚本? 还是每个模块的脚本实际上是在<<创建实例时单独提交的,以便每个模块都有自己的Here命名空间?
简而言之,在使用jmpapp时,这里通常会引用每个模块还是整个应用?Re: 内置命名空间用法,Names Default to Here,函数局部变量
@mringqui写道:
知道了! “每次提交”语言非常有帮助。
作为后续,当从 App Builder 运行不同的模块时,启动 .jmpapp 时是否包含每个模块的脚本? 或者每个模块的脚本实际上是在 << Create Instance 上单独提交的,以便每个模块都有自己的 Here 命名空间?
简而言之,在使用 jmpapp 时,Here 通常是指每个模块,还是指整个应用程序?
@EvanMcCorkle