Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala示例代码和弃用问题_Scala_Deprecated - Fatal编程技术网

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)
  }
}