如何使这更清晰,更简洁?
def right_menu_link(name, url, css_class = nil)
css_class += " arrow" if css_class
css_class = "arrow" unless css_class
# ... rest of code
end
我至少想出了这个:
def right_menu_link(name, url, css_class = nil)
css_class ||= []; css_class << " arrow"
# ... rest of code
end
答案 0 :(得分:1)
答案 1 :(得分:1)
使用三元运算符
css_class = css_class ? " arrow" : css_class + " arrow"
答案 2 :(得分:1)
def right_menu_link(name, url, css_class = nil)
css_class = [*css_class] << ' arrow'
end
总是很高兴知道你的splats。 此外,与使用三元运算符相比,您避免使用条件。
EDIT正如所指出的,ruby版本&lt; 1.9将nil保留在数组中。较新版本忽略了nil,如示例中所示。
答案 3 :(得分:0)
我知道它不太酷,因为它只能在有效的情况下工作,即缺少参数或提供的数组。
def right_menu_link(name, url, css_class = [])
css_class << ' arrow'
end