私は読んでいますProgramming Scala (O'reilly)これは本当に良い本です。Scalaサンプルコードと非推奨の問題
問題は、列挙型が盗難されていて、開始されたとして実際になぜそれがわからないという例があるということです。
だから、ここのコードです:
// code-examples/Rounding/enumeration-script.scala
object Breed extends Enumeration {
val doberman = Value("Doberman Pinscher")
val yorkie = Value("Yorkshire Terrier")
val scottie = Value("Scottish Terrier")
val dane = Value("Great Dane")
val portie = Value("Portuguese Water Dog")
}
// print a list of breeds and their IDs
println("ID\tBreed")
for (breed <- Breed) println(breed.id + "\t" + breed)
// print a list of Terrier breeds
println("\nJust Terriers:")
Breed.filter(_.toString.endsWith("Terrier")).foreach(println)
私はそれもコンパイルされません(mainメソッドの内部で)日食でそれを実行しようとします。 scala
コマンドを使ってスクリプトを実行したいときはうまくいきますが、廃止予定の警告が表示されます。だから私は-deprecation
フラグを使用して再度実行し、それが警告を示しています
>> scala -deprecation enumeration-script.scala
/home/{me}/code/enumeration-script.scala:13: warning: method foreach in class Enumeration is deprecated: use values.foreach instead
for (breed <- Breed) println(breed.id + "\t" + breed)
^
/home/{me}/code/enumeration-script.scala:17: warning: method filter in class Enumeration is deprecated: use values.filter instead
Breed.filter(_.toString.endsWith("Terrier")).foreach(println)
^
two warnings found
ID Breed
0 Doberman Pinscher
1 Yorkshire Terrier
2 Scottish Terrier
3 Great Dane
4 Portuguese Water Dog
Just Terriers:
Yorkshire Terrier
Scottish Terrier
だから、私はこれを読んで、コードを変更し、それが今で正常に動作し、変更内容は以下のとおりです。
// code-examples/Rounding/enumeration-script.scala
object Breed extends Enumeration {
val doberman = Value("Doberman Pinscher")
val yorkie = Value("Yorkshire Terrier")
val scottie = Value("Scottish Terrier")
val dane = Value("Great Dane")
val portie = Value("Portuguese Water Dog")
def main(args: Array[String]) {
// print a list of breeds and their IDs
println("ID\tBreed")
for (breed <- Breed.values) println(breed.id + "\t" + breed)
// print a list of Terrier breeds
println("\nJust Terriers:")
Breed.values.filter(_.toString.endsWith("Terrier")).foreach(println)
}
}
ますのでご注意ください私は実行コードをmain
メソッドの中に入れています。
今、それはなぜですか? Scalaのバージョンですか?私は他の例が心配すべきでしょうか? Scalaのバージョンを更新しますか?なぜそれが日食で動かないのですか?
スカラ座の私のバージョンは
eclipseプラグインの場合と同様、開発中ですので、実際にはそれに頼ることはできません。 – agilesteel
ええ、それは "厳密モード"にあるようです。または類似のもの。私はコードをコンパイルすることはできません。 – santiagobasulto