gpt4 book ai didi

ruby-on-rails - 如何进一步重构 ruby 哈希

转载 作者:数据小太阳 更新时间:2023-10-29 08:21:53 27 4
gpt4 key购买 nike

我正在编写一个接受字符串并返回相应模型类的函数。旧版本由难看的 case 语句组成,重构后的版本有一个不那么难看的散列。然而,哈希对我来说仍然是重复的。你能给我一些建议吗?

# original function

def determine_node_label(category)
label =
case category
when 'boundary box'
Slide
when 'circle', 'rectangle'
GroupBox
when 'text'
Text
when 'picture', 'pie', 'bar' , 'trend', 'star'
Content
else
Content
end
return label
end

# refactored function

def determine_node_label(category)
label = {
"boundary box" => Slide,
"circle" => GroupBox,
"rectangle" => GroupBox,
"text" => Text,
"picture" => Content,
"pie" => Content,
"bar" => Content,
"trend" => Content,
"star" => Content
}
label.default = Content
return label["category"]
end

更新:

我对假设 label.default 会发生变化的解决方案更感兴趣。我很抱歉没有在代码中明确这一点。

最佳答案

这个呢?

LABELS = {
"boundary box" => Slide,
"circle" => GroupBox,
"rectangle" => GroupBox,
"text" => Text
}

def determine_node_label(category)
LABELS[category] || Content
end

关于ruby-on-rails - 如何进一步重构 ruby 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52463505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com