0
在我是一个代码审查中,我们注意到,在代码中有很多的过程中有一个朋友有一个友好的交谈:最佳方式
unknownTypeVal match {
case asStr: String => //DO SOMETHING FOR STRING
case asInt: Integer => //DO SOMETHING FOR Integer
case asMyOwnClass: MyOwnClass => //DO SOMETHING FOR MyOwnClass
}
问题是最初由返回Any
或Option
的方法生成,并且无法将其删除,因为我们将库用作XPath和JSONPath,它们为所提供的路径返回Any
或Option
的实例。
我并不想进入的“偏爱”讨论,这是不是一种意见的问题,我想知道,无论是标准的斯卡拉,或影响任何其他组织最好定义,做这种我们认为这个功能可以简化为一个函数调用,这个函数调用一个包含函数映射的方法,并基于“某事”(类的名字或者其他的东西)我不知道现在)决定如何处理这样的参数:
process(myAnnonimusVal: Any) = myMapOfFunct(myAnnonimusVal.getClass) //and based on the function that this will return execute such function pasing myAnnonimusVal
什么是鼓励开发者斯卡拉斯卡拉或社区
做
为什么你认为这不是一个有效的方式来做到这一点,甚至有组织的方式做你在你的文章中提到的?即使在你的myMapOfFunct中,你也不得不在你的case语句中。只有你会做的是避免代码重复。 –
您所希望的权威答案不存在,任何答案都将成为意见。我自己的是:如果你被一个'任何'返回的API卡住了,就把你的鼻子包裹在_something_中,这会给你有意义的类型,然后忘记它曾经发生过。 –
另外'任何'和'选项'都有很少的共同之处 - 那部分问题并不清楚。 –