Groovy实现Ruby的case .. when表达式

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

def match(subject,closure) {   
    def whenMap = [:],otherwise = null  
    closure.when = { map -> whenMap.putAll(map) }   
    closure.otherwise = { otherwise = it }   
    closure.resolveStrategy = Closure.DELEGATE_FIRST   
    closure()   
    def result = whenMap.find { condition,value -> subject in condition }   
    return result ? result.value : otherwise   
}   
  
def manufacturer(car) {   
    match(car) {   
        when "Focus":     "Ford"  
        when "Navigator": "Lincoln"  
        when "Camry":     "Toyota"  
        when "Civic":     "Honda"  
        when "Patriot":   "Jeep"  
        when "Jetta":     "VW"  
        when "Ceyene":    "Porsche"  
        when "Outback":   "Subaru"  
        when "520i":      "BMW"  
        when "Tundra":    "Nissan"  
        otherwise         "Unknown"  
    }   
}   
  
println "The Patriot is made by ${manufacturer('Patriot')}"  
println "The QQ is made by ${manufacturer('QQ')}"  

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

背景:    8月29日,凌晨4点左右,某服务告警,其中一个...
https://support.smartbear.comeadyapi/docs/soapui/steps/g...
有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能...
Scala和Java为静态语言,Groovy为动态语言Scala:函数式编程,...
出处:https://www.jianshu.com/p/ce6f8a1f66f4一、一些内部...
在运行groovy的junit方法时,报了这个错误:java.lang.Excep...