Ruby:嵌套if语句
发布时间:2020-12-17 03:55:12 所属栏目:百科 来源:网络整理
导读:我正在编写一些代码,结果却让我觉得太难看了.反正我是否可以重构它以便我不使用嵌套的if语句? def hours_occupied(date) #assuming date is a valid date object availability = get_work_hours(date) focus = "work" if availability.nil availability = g
我正在编写一些代码,结果却让我觉得太难看了.反正我是否可以重构它以便我不使用嵌套的if语句?
def hours_occupied(date) #assuming date is a valid date object availability = get_work_hours(date) focus = "work" if availability.nil availability = get_family_hours(date) focus = "family" if availability.nil availability = get_friend_hours(date) focus = "friends" end end end 我知道我可以做这样的事情以获得可用性 availability = get_work_hours(date) || get_family_hours(date) || get_friend_hours(date) 但是如何相应地设置焦点变量? 解决方法
另一种方法是在需要时重新分配值:
def hours_occupied(date) availability,focus = get_work_hours(date),"work" availability,focus = get_family_hours(date),"family" unless availability availability,focus = get_friend_hours(date),"friend" unless availability end 或使用迭代器: def hours_occupied(date) availability = focus = nil %w(work family friend).each {|type| availability,focus = self.send(:"get_#{type}_hours",date),type unless availability} end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |