Scala示例代码和弃用问题
我正在读一本非常好的书,而且很容易理解 问题是有一个关于枚举的例子被窃听了,作为一个开始,我真的不知道为什么 下面是代码:Scala示例代码和弃用问题,scala,deprecated,Scala,Deprecated,我正在读一本非常好的书,而且很容易理解 问题是有一个关于枚举的例子被窃听了,作为一个开始,我真的不知道为什么 下面是代码: // code-examples/Rounding/enumeration-script.scala object Breed extends Enumeration { val doberman = Value("Doberman Pinscher") val yorkie = Value("Yorkshire Terrier") val scottie =
// 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)
因此,我阅读了这篇文章并更改了代码,现在它工作正常,更改如下:
// 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)
}
}
//代码示例/Rounding/enumeration-script.scala
对象繁殖扩展了枚举{
val杜宾=值(“杜宾平舍”)
val yorkie=价值(“约克郡梗”)
val scottie=价值(“苏格兰梗”)
瓦尔丹麦=价值(“大丹”)
val portie=值(“葡萄牙水犬”)
def main(参数:数组[字符串]){
//打印品种及其ID的列表
println(“ID\tBreed”)
因此,我在《勘误表》一书中找到了:
在版本2.8.0.Beta1-prerelease下,存在弃用警告
与源代码
作者回复:
是的,显然这是2.8中的API更改
使用“scala-deprecation…”,您将看到更详细的警告
(我希望这个标志在默认情况下是打开的)。你必须使用“for”(breed我猜你使用的是版本2.9/2.10的Eclipse插件,而不是版本2.8的Eclipse插件,这就是为什么它在旧的Scala发行版中工作,但在自带自己版本的Eclipse中不起作用的原因
所讨论的方法已被弃用,并已被删除
建议:更新至最新版本(目前为2.9.1)。对于eclipse插件,它正在积极开发中,因此您不能真正依赖它。是的,它似乎处于“严格模式”“。或者类似的东西。因为它不允许我编译代码。谢谢,我不知道。我以为2.8是最后一个。谢谢!@santiagobasulto:看看这里:Scala 2.9比2.8和并行集合有了巨大的改进!哇,的确是巨大的变化。我从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")
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)
}
}