2009-09-20 17 views
6

में एक इंस्टेंस विधि का फ़ंक्शन मान प्राप्त करें I उदाहरण विधि के फ़ंक्शन मान f कैसे प्राप्त करें?स्कैला

class X(i : Int){ 
    def method(y : Int) = y + i 
} 

val x = new X(10) 
val f : (Int) => Int = ? 

val r = x.method(2) 
val r2 = f(2) 

कॉलिंग x.method(2) और f(2) एक ही विधि कॉल किया जाएगा। -

उत्तर

8
scala> class X(i : Int){ def method(y : Int) = y + i } 

defined class X 

scala> val x = new X(10) 

x: X = [email protected] 

scala> val f = x.method _ 

f: (Int) => Int = <function> 

scala> val r = x.method(2) 

r: Int = 12 

scala> val r2 = f(2) 

r2: Int = 12 
2

this उपयोगी संदर्भ इंगित करता है कि तरीकों कार्यों की जरूरत नहीं है, कार्यों तरीकों लेकिन अगर आप एक विधि से एक समारोह बनाना चाहते थे शायद यह तुम क्या चाहते है:

scala> def m1(x:Int) = x+3 
m1: (Int)Int 
scala> val f2 = m1 _ 
f2: (Int) => Int = <function>