2017-02-26 5 views
0

どうしたのですか?例えば、これは10を返す必要があります。エラーのスカラのステートレス関数

{ val (get, set) = getAndSet (5); set (10); get() } 

val getAndSet : Int => (() => Int, Int => Unit) = { 
var s : Int = 0 
val get :() => Int =() => { 
    val z = s; 
    s = s + 1; 
    z 
} 
val set : Int => Unit = (x:Int) => { 
    s = x 
} 
x => (get, set) 
} 

答えて

0

カップル:

  • n

    が存在していないが、おそらくsを意味します。
  • 最後の行はx => (get, set)である必要がありますが、xは何も使用していません。

は、ここでは、xを使用していないので、あなたが代わりに

val getAndSet: Int => (() => Int, Int => Unit) = _ => { 
    var s: Int = 0 
    val get :() => Int =() => { 
    val z = s; 
    s = s + 1; 
    z 
    } 
    val set : Int => Unit = (x:Int) => { 
    s = x 
    } 
    (get, set) 
} 
+0

私の謝罪を行うことができます

val getAndSet: Int => (() => Int, Int => Unit) = { var s: Int = 0 val get :() => Int =() => { val z = s; s = s + 1; z } val set : Int => Unit = (x:Int) => { s = x } x => (get, set) } 

を働くあなたのコードの少なくとも修正版ですが、私は自分を見ていませんタイプエラー。私のコードはコンパイルされますが、テストに合格しません。私はまた、 "s = s + 1;と思うどのように私は平等にする必要がありますか?それは "s.Equal(s + 1)"のようなものでしょうか? – yeny314

関連する問題