优雅的代码

看到同事的case的语句,深深地折服了。 原来的ruby代码:

case type
when "type1"
  "value1"
when "type2"
  "value2"
when "type3"
  "value3"
else
  "value-else"
end

同事转换成如下的scala代码:

Map[String, String](
  "type1" -> "value1",
  "type2" -> "value2",
  "type3" -> "value3",
).withDefaultValue("value-else")

这种写法也可以用ruby实现:

h = Hash.new["value-else"]
h["type1"] = "value1"
h["type2"] = "value2"
h["type3"] = "value3"