print"我是" + @name + "" 和 print"我是" + @name
class Person
attr_accessor :name
def hello
print "我是" + @name
end
end
alex = Person.new
alex.name = "艾力克斯"
alex.hello # => 我是艾力克斯
但是帮助里面是将"我是" + @name + ""作为一个字符串整体“ + @name +”是一个内嵌字符串(本人真是这样理解的- -b)
而print"我是" + @name则是将"我是" 和 @name作为两个不同的类处理,运行结果会一样是因为他们有一个共同的obj父类,该父类又支持+方法
请注意一句 只要其对象存在,变量的值就会被保存。
这就是说(举上面的例子)如果我们在游戏的进程中将作为person类的alex实例(由于各种七七八八的原因不小心还是有意)删掉了,那么作为alex的name的属性值"艾力克斯"将会被系统清空
回到nil状态,这样就能减少一点内存了(超级抠门- -b)
而如果将alex的name的属性值存为一个全局变量,那就是不管alex死了没有系统始终存在一个叫
"艾力克斯"的全局变量(真是太浪费了- -b)
好像就是这么理解的,好像- -b
var = 1 # 让引用 var 引用内存中 Fixnum 类的单一实例 "1"
var = Object.new # 让 var 引用刚在内存中分配的一个 Object 对象
var = true # 让 var 引用到 TrueClass 类的单一实例 true
var = nil # 让 var 引用到 NilClass 类的单一实例 nil
以下引用tommay于2009-6-9 11:04:56的发言:
再次受教了,紫苏大~
p global_variables
以下引用华华于2009-6-9 11:09:41的发言:
那Ruby里有StringBuilder吗?
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |