Scala kod daha basit görünüyor Scala ve Java kod örnekleri/daha az satır var mı?
İhtiyacım olan bazı kod örnekleri (ve ben de gerçekten merak onları) Scala ve Java kod gösteren Scala kod daha basit ve kısa bir kod yazılı Java (elbette her iki örneği de çözmek gerekir aynı sorun).
"Eğer bu Scala soyut fabrika" o zaman bu da kabul edilebilir. çok daha hantal görünecek Java gibi yorum Scala örnek ise sadece orada
Teşekkürler!
Kabul this bütün cevapların çoğunu beğendim
CEVAP
stacker's example geliştirmek ve Scala kullanalım case classes:
case class Person(firstName: String, lastName: String)
Yukarıda Scala sınıf aşağıda Java sınıfının tüm özellikleri içerirve biraz daha- pattern matching destekler örnek Java yok. Scala 2.8 aşağıdaki Java sınıfı* metotlar ile aynı yeteneği sağlar, bu durumda sınıflar için copy method Bir oluşturmak için kullanılan adlandırılmış ve varsayılan argümanlar, ekler.
public class Person implements Serializable {
private final String firstName;
private final String lastName;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public Person withFirstName(String firstName) {
return new Person(firstName, lastName);
}
public Person withLastName(String lastName) {
return new Person(firstName, lastName);
}
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Person person = (Person) o;
if (firstName != null ? !firstName.equals(person.firstName) : person.firstName != null) {
return false;
}
if (lastName != null ? !lastName.equals(person.lastName) : person.lastName != null) {
return false;
}
return true;
}
public int hashCode() {
int result = firstName != null ? firstName.hashCode() : 0;
result = 31 * result (lastName != null ? lastName.hashCode() : 0);
return result;
}
public String toString() {
return "Person(" firstName "," lastName ")";
}
}
Sonra da kullanım alanları var (elbette):
Person mr = new Person("Bob", "Dobbelina");
Person miss = new Person("Roberta", "MacSweeney");
Person mrs = miss.withLastName(mr.getLastName());
Karşı
val mr = Person("Bob", "Dobbelina")
val miss = Person("Roberta", "MacSweeney")
val mrs = miss copy (lastName = mr.lastName)
Scala fonksiyonel programlama geleneks...
Neden Standart girdiden okuma satır Py...
Nasıl daha az (gnu) satır numaralarını...
Nasıl java kullanmak için.String.Scala...
Neden bitişik in Java daha hızlı geçiş...