2011-07-17 25 views

cevap

25

, sen vals veya vars olarak beyan etmek zorunda ve toString aklı başında uygulama ... Sen vaka sınıfları isteyeceksiniz: bir vaka sınıfına

case class SimpleClass(myInt: Int, myString: String) 

val mySimple = SimpleClass(1, "hi") 
println(mySimple.myInt) 

Parametreler otomatik vals içine yapılır. ,'u isterlerse açık bir şekilde yapabilirler, fakat bu tür bir şey tipik olarak Scala'da - değişmez nesnelerin tercih edildiği yerlerde - kaşlarını çattı.

+3

Yoksa ücretsiz bu tür şeylerden olsun "vaka sınıfında" olarak sınıf bildirmek. –

+0

'vaka sınıfı 'POJO'ya daha yakın; Detaylar için bkz: http://stackoverflow.com/questions/9673233/how-is-the-pojo-javabean-pattern-treated-in-scala – Neil

15

, hashCodes: Eğer contructor parametreleri sınıfının alan olarak kullanılabilir olmasını istiyorsanız

val mySimple = new SimpleClass(1, "hi") 
println(mySimple.myInt) 
3

Sorun şu ki, SimpleClass.myInt getter yöntemini çağırıyorsunuz, ancak herhangi bir yerde bir getter yöntemi tanımlamadınız. Hatta daha iyisi SimpleClass.myInt alıcı yöntemini veya tanımlamanız gerekir Scala sizin için otomatik tanımlamak için olsun:

class SimpleClass(val myInt: Int, myString: String) {} 
21

Scala tanımının java eşdeğerdir:

public class SimpleClass { 
    public SimpleClass(int myInt, String myString) { 
    } 
} 

Hayır kokan merak t çalışın ...

Hey ahbap, bu 17'nci scala sorusudur ve hala dilin temelleri tarafından sıkıntı çekiyorsunuz. Belki bir öğleden sonra almalı ve bilginizi pekiştirmek için çevrimiçi (veya bir kitap) öğretici bazılarını okumanız gerekir. Ben önerebilirsiniz:

  • http://www.codecommit.com/blog/scala/roundup-scala-for-java-refugees
  • http://www.ibm.com/developerworks/java/library/j-scala02198/index.html

      (listeleri 11-13 bakınız)
  • +9

    +1 "Hey dude" :-) – Landei