Project1

标题: 实在是没辙了 [打印本页]

作者: 司马睿风    时间: 2008-4-11 01:10
标题: 实在是没辙了
class Person
  def name
    @name
  end

  def gender
    @gender
  end

  def age
    @age
   end
end

people = Person.new('Tom', 'male', 15)
print people.name
print people.gender
print people.age
图方便,但是没想到出错了,大家帮我看下,反正我看不出为什么错,郁闷 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 水迭澜    时间: 2008-4-11 01:19
def name
   return @name
end

所有的都要这么改。因为你没有把@name声明为公开变量 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 水迭澜    时间: 2008-4-11 01:20
另外还要有
class Person
def initialize(name, gender, age)
    @name = name
    @gender = gender
    @age = age
end
end
作者: 9244579    时间: 2008-4-11 01:22
正解
作者: 司马睿风    时间: 2008-4-11 01:24
class Person
  def initialize(name, gender, age)
    @name = name
    @gender = gender
    @age = age
  end
  def name
    return @name
  end
  def gender
    return @gender
  end
  def age
    return @age
  end
end

people = Person.new('Tom', 'male', 15)
print people.name
print people.gender
print people.age
这样吗?
我写过了,还是无返回值
作者: 司马睿风    时间: 2008-4-11 01:25
可以了,解决
作者: Singin    时间: 2008-4-11 01:26
以下引用水迭澜于2008-4-10 17:20:21的发言:

另外还要有
class Person
def initialize(name, gender, age)
   @name = name
   @gender = gender
   @age = age
end
end

----
请教一下,这个的目的是什么呢?
作者: 司马睿风    时间: 2008-4-11 01:27
这里是定义一个函数,函数里的参数是name, gender, age
作者: link006007    时间: 2008-4-11 01:59
以下引用Singin于2008-4-10 17:26:46的发言:


以下引用水迭澜于2008-4-10 17:20:21的发言:

另外还要有
class Person
def initialize(name, gender, age)
  @name = name
  @gender = gender
  @age = age
end
end


----
请教一下,这个的目的是什么呢?

类初始化  构造函数  由ruby调用
作者: 水迭澜    时间: 2008-4-11 02:05
回LZ和Singin:
是Person.new调用的函数。
class的new都会自动调用initialize方法。




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