unapply

    13

    1答えて

    オブジェクトL1以下のとおりです。 varargsを渡すことでL1を作成することはできますが、これは同じ構文を使用してL1に割り当てることができます。残念ながら、私がここでやったやり方は、の中に入れ子の醜い構文が必要です。。 object L2 { def apply(stuff: String*) = stuff.mkString(",") def unapply(s: St

    0

    1答えて

    私はスカラ座に非常に新しいですし、次のコードでいくつかの未解決の問題だ方法を持っているん: object exprs{ println("Welcome to the Scala worksheet") def show(e: Expr): String = e match { case Number(x) => x.toString case S

    0

    2答えて

    「適用解除」再利用することはできません object Extract { def unapply = f } 次にコンパイルがで失敗します: error: an unapply result must have a member `def isEmpty: Boolean val Extract(result) = "a string" ^ なぜですか? def is

    8

    1答えて

    が、私はこれを行うことができるようにしたいint型に適用を解除する追加: scala> val Int(i) = "1" i: Int = 1 しかしIntがunapplyメソッドを持っていません。 私はthis answerを見つけました。これは、既存のオブジェクトに暗黙的にメソッドを追加する方法を説明していますので、試しました。彼らが与えた解決策はうまくいきましたが、残念なことにパターン

    2

    1答えて

    私はメイプルでの絶対的な初心者ですし、次のように理解するために問題を抱えている: 次は動作しません: f:=(x)->x^2; df_wrong:=(x)->diff(f(x),x); df_wrong(1);ので、常に(df_wrongで)次の「エラーに、無効な入力が得られます。 diffは1を受け取りましたが、それは2番目の引数 "には無効です。しばらくすると、次のように解決されることが

    1

    1答えて

    スカラ未適用メソッドを理解しようとしています。 以下は私の理解です。 val temp = Person.unapply(new Person("Magic", "Mike")) if (temp != None) { val (x, y) = temp.get } else { <go to next case> } が、私は以下のように持っていたときにどのように適用を解除する作業の下に

    8

    1答えて

    私は、エクストラクタに暗黙的にパラメータを変換したいが、動作していないようだ。この非常に単純なケース考えてみましょう: case class MyString(s: String) {} implicit def string2mystring(x: String): MyString = new MyString(x) implicit def mystring2string(x: MyS