Ruby 学生-课程。如何允许在课程初始化方法中设置上课天数?方法参数。红宝石
我目前正在从事一项学生课程计划。一切都进行得很顺利,直到我发现自己很难理解是谁允许我的initialize方法有一个参数Ruby 学生-课程。如何允许在课程初始化方法中设置上课天数?方法参数。红宝石,ruby,rspec,Ruby,Rspec,我目前正在从事一项学生课程计划。一切都进行得很顺利,直到我发现自己很难理解是谁允许我的initialize方法有一个参数days,该参数的值可以是一周中的任何一天:mon,:tue,… 更具体地说,我正在努力解决的问题是,我应该在哪里以及如何将一周中可以包含在我的课程的initialize参数中的天数列表包括在内 到目前为止,我的课程是这样的: class Course attr_reader :department, :name, :credits, :time_block, :
days
,该参数的值可以是一周中的任何一天:mon,:tue,…
更具体地说,我正在努力解决的问题是,我应该在哪里以及如何将一周中可以包含在我的课程的initialize参数中的天数列表包括在内
到目前为止,我的课程是这样的:
class Course
attr_reader :department, :name, :credits, :time_block, :days, :students
def initialize(course_name, department, credits, time_block = nil, days = nil) # where should I include the list of symbols : :mon,:tue,:weds ... ?? , also time_block?
@course_name = course_name
@department = department
@credits = credits
@students = []
@days = days
@time_block = time_block
end
def name
@course_name
end
def department
@department
end
def credits
@credits
end
def add_student(student)
return if @students.include?(student)
student.enroll(self)
end
def conflicts_with?(course2)
return false if self.time_block != course2.time_block
days.any? do |day|
course2.days.include?(day)
end
end
end
是的,就是这么简单。你可以有天=[:周一、周二、周三、周四、周五、周六、周日]。在你的课程中冻结。您有什么特别需要的吗?谢谢@Anurag。是的,我不知道如何以及在何处添加一周中的天数列表,以便将其用作初始化方法中的参数。:/我如何允许该方法使用一组天数??向新实例传递一个天数数组?1attr\u reader:name、:department、:credit
为这三个实例变量创建getter方法,因此重新定义这些getter是多余的。2.考虑将<代码> AdgSub学生> /代码>改为<代码>学生。注册(自),除非学生。包括(学生)< /代码>。注意,这使用getter:students
。3.:与?
冲突的第一条语句可以写入返回false,除非time\u block==course2.time\u block代码><代码>自我
是隐式的,除非
可能是首选,因为它避免了负面影响。噢,哇!!非常感谢@Huy Vo。是的,很简单。我只是新来的!!
class Course
attr_reader :days
def initialize(days)
@days = days
end
end
course = Course.new([:mon, :tue, ...])