scala.sys.Processを使っていて、下記のようなコードを書きました。
import scala.sys.process._ val result ="df -k"!! println(result)
コンパイルしてみると、
> compile [info] Compiling 1 Scala source to /Users/kazuhiro/work/scala/sbt_project/sample_project/target/scala-2.9.0-1/classes... [error] /Users/kazuhiro/work/scala/sbt_project/sample_project/src/main/scala/Sample.scala:28: recursive value result needs type [error] println(result) [error] ^ [error] /Users/kazuhiro/work/scala/sbt_project/sample_project/src/main/scala/Sample.scala:28: type mismatch; [error] found : Unit [error] required: scala.sys.process.ProcessLogger [error] println(result) [error] ^ [error] two errors found [error] {file:/Users/kazuhiro/work/scala/sbt_project/sample_project/}default-fc0f5b/compile:compile: Compilation failed [error] Total time: 2 s, completed 2012/06/02 11:22:44次に以下のように!!の行に一行あけてみると。
import scala.sys.process._ val result ="df -k"!! println(result)コンパイルが問題なく通る。 シンタックスシュガーに改行が必要だとシンタックスシュガーにならんじゃないの? REPLで上記コードを入力した場合は、問題なく実行されるので、本来ならば問題はないんだろうなぁ。。 環境は
mac OS X 10.7.4
scala-2.9.0-1
追記:2012/06/05
とりあえず謎の空行の対策としては、セミコロンを入れればコンパイルエラーはなくなる事が判明。 うぅーん。なぞだ。
0 件のコメント:
コメントを投稿