0

this SO postを見て、次のコードを Putty と Windows コマンド ラインに貼り付けようとしました。

def size(root: Leaf, left: Branch, right: Branch) : Int = {
   def go(branch: Branch, acc: Int) : Int = branch match {
       case Nil => acc
       case branch.left != Nil && branch.right != Nil => go(branch.left, acc) + 
                                                          go(branch.right, acc)
       case branch.left != Nil => go(branch.left, acc)
       case branch.right != Nil => go(branch.right, acc)
       case _ => 0
   }
  root match {
    case Nil => go(left, 0) + go(right, 0)
    case _ => 1 + go(left, 0) + go(right, 0)
  }
}

ただし、Putty と Windows 7 のコマンド ラインに貼り付けるだけで、次のような出力が得られます。

scala> :paste // 貼り付けモードに入る (ctrl-D で終了)

def size(root: Leaf, left: Branch, right: Branch) : Int = { def go(branch: Branch, acc: Int) : Int = branch match { case Nil => acc

=:= AnyRef ArrowAssoc Class ClassManifest Downloads
DummyImplicit Ensuring Function
Manifest Map NoManifest OptManifest Pair Set
String Triple root
arrayToCharSequence asInstanceOf assert
assumeaugString bin ch
classManifest classOf com

貼り付けようとすると、この予期しない出力動作が原因でコンパイルされていないと思います。

4

1 に答える 1

1

そこにTAB文字があるかどうかを確認してください。sbt は、TAB を押すとコード補完をトリガーします。ペーストモードでも同様です。そのため、ステートメントを完成させようとして、間違って完成させた可能性があります。

于 2013-08-14T08:38:12.867 に答える