Ein typisches Beispiel, wenn Sie die Prägnanz des Funktionscodes veranschaulichen möchten, könnte Sammlungen und deren Operationen verwenden. Betrachten Sie beispielsweise eine Klasse Customerund eine Methode, die aus einer Kundenliste eine sortierte Liste von Kundennamen erstellt.
Hier ist die Java-Implementierung:
class Customer
{
String name;
... // Other attributes.
}
List<String> sortedCustomerNames(List<Customer> customers)
{
List<String> names = new ArrayList<String>();
for (Customer customer : customers)
names.add(customer.name);
Collections.sort(names);
return names;
}
Scala-Version:
class Customer(val name: String, /* ... other attributes */)
def sortedCustomerNames(customers: List[Customer]): List[String] =
customers.map(c => c.name).sorted
HINWEIS
Die Prägnanz in Bezug auf Tastenanschläge ist nicht immer ein gutes Maß für die Codequalität und Wartbarkeit.
Außerdem würde ich im Allgemeinen nicht raten, von Java zu Scala zu wechseln, nur weil Scala neuer ist. Wenn die meisten Teammitglieder mit Java besser vertraut sind, ist das Team mit Java viel produktiver als mit Scala (oder einer anderen Programmiersprache, die sie nicht gut kennen).
Ich lerne Scala seit ungefähr zwei Jahren in meiner Freizeit und habe erst kürzlich (nach dem Besuch eines Online-Kurses) das Gefühl, dass ich in Scala produktiver sein kann als in Java. Bevor ich diesen Punkt erreicht habe, hätte ich nicht in Betracht gezogen, Scala für die Produktion zu verwenden.