2
|
Amin Shah Gilani · 技术社区 · 6 年前 |
![]() |
1
5
所以在 按时间顺序的 秩序:
您的代码相当于:
你可以使用
输出:
如您所见,数组文字不会影响当前嵌套。两个位置的常量将在下定义
如果您真的想“在”数组中声明常量(即在数组的singleton类中),可以这样做:
以上只是为了演示的目的,实际上不需要这样做。 |
![]() |
2
2
我可以理解它是如何令人困惑的,但除了不鼓励将值重新分配给常量之外,在范围方面,实例变量和常量极其相似。 第一类声明中的视觉技巧是在数组中声明常量。 首先:理解当您声明一个常量时,返回的值就是您的定义。例如。
现在,让我们看看常量声明:
声明的
但你更进一步,在定义中声明了一个常量。现在请理解 实例变量和常量的范围相似 ,它与声明它的实例绑定,因此 在任何地方声明常量都会将其绑定到实例。
通过执行
如果您更习惯于实例变量_
这些工作按预期进行
但这也是可行的。
实际上,这三个都在示例类的范围内。
关键是,如果我用一个额外的方法扩展类:
它像正常一样访问实例变量。
|
![]() |
3
2
我在Ruby___编程书中找到了这个,第94页:
结论,一个类中不能有两个同名常量,一个在数组内部,一个在外部。所以您不需要范围来访问它,因为范围是整个类。 您不需要常量数组中的常量,因为数组是常量,其内部值___也是常量。 |
![]() |
4
2
简短的回答可能是: 您的代码相当于:
通过一些测试:
*:顶级常量(=类或模块外部定义的常量)似乎存储在
|
![]() |
5
1
你的答案在你的问题中。
这里有3个常量(
和
即使将方法添加到类中,它也不会发生任何变化。
|
![]() |
6
0
数组定义不是块。它不在数组的作用域中运行。 这与以下情况没什么不同:
如您所见,范围不会改变:
赋值返回赋值:
你不能“储存”类似的东西
|
![]() |
Codename K · VB6-如何使窗体排在第二位? 7 年前 |
![]() |
spice · 条件语句PHP 5.4出现意外“)”错误[重复] 7 年前 |
![]() |
snuff · c语法的问题-const*const*定义 7 年前 |
![]() |
DCR · 为什么要触发onclick事件 7 年前 |
![]() |
ClementNerma · 如何在C中生成“实”常量?[副本] 7 年前 |