A_CONSTANT=100
class Constant_Test_1
ANOTHER_CONSTANT=50
def initialize
print ANOTHER_CONSTANT
print A_CONSTANT
end
end
例子 第一种
class Local_Variable
def method_1
local_variable=2
end
def method_2
local_variable=3
end
end
第二种
lass Instance_Variable
def method_1
@instance_variable=2
end
def method_2
@instance_variable=4
end
end
第三种
class Class_Variable
@@class_variable=0
def initialize
@@class_variable+=1
end
end
第四种
class Global_Variable_1
def initialize
$global_variable=0
end
end
class Global_Variable_2
def initialize
$global_variable+=1
end
end 作者: 禾西 时间: 2008-5-14 16:45
1.你自己不是說出來了嗎?
2.定值與不定值的關係...(其實就是會不會占用內存位置的分別)
3.A_CONSTANT以大寫開頭,當然是常量啊!怎麼會是全局變量?(敲。)
提問之前先爬爬置頂帖子是習慣,給你引用兩個references http://rpg.blue/viewthread.php?tid=81167 http://rpg.blue/viewthread.php?tid=84430作者: link006007 时间: 2008-5-14 18:44
一、第二种变量与第三种有何区别?
@@ 其实是类变量 就是这个类的静态变量,这个变量在所有类中共享
class Val
@@static_v = 0
def initialize
@@static_v += 1
end
def pstatic
p @@static_v
end
end
a = Val.new
a.pstatic
b = Val.new
a.pstatic
b.pstatic
二、变量与常量的关系?
常量就是不可变的量
三、A_CONSTANT为什么没加$算是全局变量,它到底是变量还是常量?
A_CONSTANT 其实是局部变量 只是他是在一开始就生成的, 所以它的作用域是全局的,
正好和$效果一样罢了 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~作者: 禾西 时间: 2008-5-14 19:03
順道我也問一下好了...
其實@ 與 @@ 究竟有啥分別,兩者都可以在方法當中定義、修改...
(除第一個能在方法外初定義,不過實際上也沒有甚麽用,常量更好)