SORU
18 NİSAN 2010, Pazar


Scala içinde sözdizimsel şeker örnekleri nelerdir?

Scala içinde sözdizimsel şeker örnekleri nelerdir?

Sabit hepsi/çoğu tamamen semboller ve böylece sabit kavramı adını bilmeden aramak için olduğundan aramak için.

YAPILACAKLAR:

  • Örtük dönüştürmeler
  • _ anonim işlevler için sözdizimi
  • Unutuyorum başka şeyler

CEVAP
18 NİSAN 2010, Pazar


Temel bilgiler:

  • a b a.b eşdeğerdir
  • a b c : b sona erdiğinde hariç a.b(c) eşdeğer. Bu durumda, a b c c.b(a) eşdeğerdir
  • a(b) isimsiz bir fonksiyon için aşağıdaki tanımlar aynıdır, Bu yüzden a.apply(b) eşdeğerdir: square1 = val (x: Int) =>xx square2 = new Function1[İnt,İnt] val { def(x: İnt) Uygula = xx }

    Aslında square1.apply(y) aradığınız square1 Function1 özelliği tarafından belirtildiği gibi olmalıdır; square1(y) (ya da Function2, vb...) çağrılırken

  • a(b) = c a.update(b,c), a(b,c) = d a.update(b,c,d) ve benzeri eşdeğerdir Aynı şekilde eşdeğerdir.

  • a.b = c a.b_=(c) eşdeğerdir. val/var x Sınıf/Nesnesi oluşturduğunuzda, Scala yöntemleri x x_= oluşturur. Bu kendinizi tanımlayabilirsiniz, ama eğer y_= tanımlayıngerekiry tanımlamak: örneğin bir derleme

    scala> val b = new Object{ def set_=(a: Int) = println(a) }
    b: java.lang.Object{def set_=(Int): Unit} = $anon$1@17e4cec
    
    scala> b.set = 5
    <console>:6: error: value set is not a member of java.lang.Object{def set_=(Int): Unit}
           b.set = 5
             ^
    
    scala> val c = new Object{ def set = 0 ; def set_=(a:Int) = println(a) }
    c: java.lang.Object{def set: Int; def set_=(Int): Unit} = $anon$1@95a253
    
    scala> c.set = 5
    5
    
  • -a a,~a !a a.unary_- Aynı şekilde karşılık gelir

  • <operator> özel karakterler bazı ayarlandığı a <operator>= b,, a = a <operator> b eşdeğerdirsadecea <operator>= yöntemi yok eğer, örneğin,

    class test(val x:Int) {
        def %%(y: Int) = new test(x*y)
    }
    
    var a = new test(10)
    a.x // 10
    a %%= 5 //Equivalent to a = a %% 5
    a.x // 50
    

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Curso Online Gratuito

    Curso Online

    4 Aralık 2011
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006