如果你被要求为教学目的编写一个简单的类,你会怎么做?我在想整洁和指示性。一种可以产生物体的东西。也许有一些变量类型而不会太复杂。
作为一个建议,它可以是一个Person
类,每个对象具有三个属性:姓名、国籍、问候语,但我不确定这是否有助于以最少的代码行获得最大的指导价值?
我希望从编写了数千个 Ruby 课程并且可以将他们的专业知识提炼成完美的教学课程的专家那里得到答案。
如果您只需要跟踪实例变量中的状态,则可以先向人们展示最简单的类:
class Person < Struct.new(:name, :nationality, :greeting) ; end
puts Person.new("b1_", "Somewhere", "Heydiho")
#=> #<struct Person name="b1_", nationality="Somewhere", greeting="Heydiho">
下一步,以更“传统”的方式显示定义的类:
class Person
attr_accessor :name, :nationality, :greeting
def initialize(name, nationality, greeting)
@name = name
@nationality = nationality
@greeting = greeting
end
def to_s
"#@name is from #@nationality and says \"#@greeting\""
end
def say_hi(name)
"#@greeting, #{name}"
end
end
attr_accessor
然后你可以用自定义的 setter 和 getter做类似的事情。恕我直言,这显示了一个很好的进展。