6 Stimmen

Funktionswert einer Instanzmethode in Scala abrufen

Wie erhalte ich den Funktionswert f einer Instanzmethode?

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)

Aufruf von x.method(2) y f(2) wäre derselbe Methodenaufruf.

8voto

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

defined class X

scala> val x = new X(10)

x: X = X@15b28d8

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

2voto

Timothy Pratley Punkte 10356

diese nützlicher Hinweis darauf, dass Methoden keine Funktionen haben, Funktionen haben Methoden - aber wenn Sie eine Funktion aus einer Methode machen wollten, ist es vielleicht das, was Sie wollen:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X