10

検討中

object A {
  def m(i: Int) = i
  val m = (i: Int) => i * 2
}

1つを取得します

scala> A.m(2)
<console>: error: ambiguous reference to overloaded definition,
both value m in object A of type => (Int) => Int
and  method m in object A of type (i: Int)Int
match argument types (Int)
       A.m(2)
         ^

アクセスは valで行うことができます

scala> val fun = A.m
fun: (Int) => Int = <function1>

scala> fun(2)
res: Int = 4

また

scala> A.m.apply(2)
res: Int = 4

しかし、どのようにアクセスしdefますか?

4

1 に答える 1

11

これは完全なゴミです(自宅では行わないでください)が、最初のが1つしかない構造型の変数に割り当てるAmことで行うことができます。

val x : { def m(i:Int):Int } = A
x.m(10)
于 2011-09-30T11:09:00.437 に答える