Project1

标题: 关于ruby中实变量作属性的问题. [打印本页]

作者: 水镜风生    时间: 2008-2-7 06:30
标题: 关于ruby中实变量作属性的问题.
programming ruby中有这么一段( }}后的是返回值):
class Song  
  def name  
    @name  
  end  
  def artist  
    @artist  
  end  
  def duration  
    @duration  
  end  
end  
aSong = Song.new("Bicylops", "Fleck", 260)  
aSong.artist                                        }} "Fleck"  
aSong.name                                          }} "Bicylops"  
aSong.duration                                      }} 260

Song.new后面的括号里的是什么?参数?
"Bicylops", "Fleck", 260是怎么和方法中的实变量结合的?

[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 水镜风生    时间: 2008-2-7 18:46
没有好心人来解答一下么......这段一直想不明白啊.......
作者: 趙雲    时间: 2008-2-7 18:54
貌似少了一段初始化
  def initialize(name,artist,duration)
    @name = name
    @artist = artist
    @duration = duration
  end


括号里的参数在初始化的时候传给实例变量 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 水镜风生    时间: 2008-2-7 20:03
是这样吗?还是有些不明白,可否再解释一下下面这一段?alex.name=" Allex"是给name属性赋值?name指的是@name还是def name中的name,哪个语句使它变成属性的?麻烦了.....

class Person
def name
return @name
end
def name=(name)
@name = name
end
def hello
print" 我是 "+@ name+""
end
end

alex = Person.new
alex.name=" Allex"
alex.hello #=> 我是 Allex
作者: 白河·愁    时间: 2008-2-8 04:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水镜风生    时间: 2008-2-8 05:20
明白了,感谢......但是还是不明白为什么是alex.name="Allex"而不是alex.name=(Allex).
作者: Eclair    时间: 2008-2-8 20:15
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1