作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在编写一个接受字符串并返回相应模型类的函数。旧版本由难看的 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/
我有这个: const {ops} = getOplogStreamInterpreter(strm); ops.del.subscribe(v => { console.log('delete
我四处搜索,据我所知,POST 表单请求已被限制为 10MB (http://golang.org/src/net/http/request.go#L721)。 如果我要在我的 ServeHTTP 方
我是一名优秀的程序员,十分优秀!