• 如何退出Scala 2.11.0 REPL?
    In the last version of scala (2.10.3) REPL, I can type exit to quit from REPL. However, in Scala 2.11.0 this doesn't work. $ scala Welcome to Scala version 2.11.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_51). Type in expressions to have them evalu...
  • Scala @运算符
    Scala的@运算符做什么? 例如,在博客文章Scala中的形式语言处理,第2部分中,有类似这样的内容 case x @ Some(Nil) => x 最佳答案 它使人们能够将匹配的模式绑定到变量。例如,考虑以下内容: val o: Option[Int] = Some(2) 您可以轻松提取内容: o match { case Some(x) => println(x) case None => } But what if you wanted not the content of So...
  • Scala中的“ 20秒”如何工作?
    以下内容如何编译: import scala.concurrent.duration._ val time = 20 seconds 这到底是怎么回事? 最佳答案 发生了一些事情。 First, Scala allows dots and parens to be omitted from many method calls, so 20 seconds is equivalent to 20.seconds()*. Second, an "implicit conversion" is appl...
  • 依赖方法类型有哪些引人注目的用例?
    依赖的方法类型(以前曾经是实验功能)现在已默认在主干中启用,显然,这似乎在Scala社区中引起了一定的兴趣。 乍看之下,这可能会产生什么效果尚不清楚。 Heiko Seeberger在此处发布了一个简单的依赖方法类型的示例,从注释中可以看出,可以很容易地在方法上使用类型参数来复制它们。因此,这不是一个非常引人注目的示例。 (我可能缺少明显的东西。如果是,请更正我。) 在依赖方法类型明显优于替代方法的情况下,有哪些实用且有用的用例示例? 我们可以对他们做哪些以前不可能/不容易做的有趣事情? 他们通过现有的字体...
  • Scala中的#操作符是什么意思?
    我在以下博客中看到此代码:Scala中的类型级编程: // define the abstract types and bounds trait Recurse { type Next <: Recurse // this is the recursive function definition type X[R <: Recurse] <: Int } // implementation trait RecurseA extends Recurse { type Next = Recurs...
  • 更新嵌套结构的更干净方法
    Say I have got following two case classes: case class Address(street: String, city: String, state: String, zipCode: Int) case class Person(firstName: String, lastName: String, address: Address) and the following instance of Person class: val raj = Person(...
  • Scala:无vs List()
    In Scala, is there any difference at all between Nil and List()? 如果不是,哪种是Scala惯用的风格?用于创建新的空列表和在空列表上进行模式匹配。 最佳答案 scala> println (Nil == List()) true scala> println (Nil eq List()) true scala> println (Nil equals List()) true scala> System.identityHash...
  • 如何在IntelliJ中查看Scala表达式的类型
    Eclipse scala插件具有一个不错的功能,当您将鼠标悬停在变量上时,它会向您显示变量的类型。我如何通过IntelliJ插件看到相同的信息? 最佳答案 选择表达式,然后键入Alt + =。 If you want to change the shortcut go to Preferences > Keymap and enter "Type Info" in the search field. 在旧版本中,是Shift + Ctrl + Alt +T。
  • 标量对推断类型的“可接受的复杂性”有什么限制?
    根据Scala语言规范: ...允许局部类型推断以限制推断的复杂性   边界[类型参数]。必须了解类型的最小值和最大值   相对于可接受复杂性的类型集。 在实践中有什么限制? 另外,适用于推断表达式类型的限制与适用于参数类型界限的限制是否不同,这些限制是什么? 最佳答案 When inferring types, the compiler often needs to calculate the Least Upper Bound (LUB) of a list of types. For examp...
  • 如何打印RDD的内容?
    我正在尝试将集合的内容打印到Spark控制台。 我有一个类型: linesWithSessionId: org.apache.spark.rdd.RDD[String] = FilteredRDD[3] 我使用命令: scala> linesWithSessionId.map(line => println(line)) 但这是打印: res1:org.apache.spark.rdd.RDD [Unit] = MappedRDD [4]在地图上的位置:19 如何将RDD写入控制台或将其保存到磁盘以查看...
  • ScalaTest和Scala Specs单元测试框架有什么区别?
    两者都是用Scala编写的针对Scala的BDD(行为驱动开发)功能单元测试框架。基于Specs构建的还可能涉及ScalaTest框架。但是Specs提供的ScalaTest没有提供什么?有什么区别? 最佳答案 Specs and ScalaTest are both good tools with happy users, but they differ in several ways. You will probably want to pick one as your main testing ...
  • 了解scala枚举
    我不得不说我不理解Scala枚举类。我可以从文档中复制粘贴示例,但是我不知道发生了什么。 object WeekDay extends Enumeration { type WeekDay = Value val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value } import WeekDay._ What means type WeekDay = Value and why do I have to write that? Why is val Mon =...
  • 如何定义DataFrame的分区?
    我已经开始在Spark 1.4.0中使用Spark SQL和DataFrames。我想在Scala的DataFrames上定义一个自定义分区程序,但不知道如何做到这一点。 我正在使用的数据表之一包含一个按帐户分类的事务列表,类似于以下示例。 Account Date Type Amount 1001 2014-04-01 Purchase 100.00 1001 2014-04-01 Purchase 50.00 1001 2014-04-05...
  • 如何在Scala中使用正则表达式进行模式匹配?
    我希望能够找到一个单词的第一个字母与组中的一个字母(例如“ ABC”)之间的匹配。在伪代码中,这可能类似于: case Process(word) => word.firstLetter match { case([a-c][A-C]) => case _ => } } 但是,如何在Scala中而不是Java中获取第一个字母?如何正确表达正则表达式?是否可以在案例类中执行此操作? 最佳答案 您可以执行此操作,因为正则表达式定义了提取器,但是您需要首先定义正则表达式...
  • 使用简单构建工具(sbt)和IntelliJ调试Scala代码
    使用IntelliJ的内置调试器调试由sbt管理的Scala代码的最简单方法是什么? sbt的Google代码网站的“ RunningSbt”文档列出了用于运行项目或测试的主类的命令,但似乎没有用于调试的命令。 后续问题:使用sbt的jetty-run命令时,将IntelliJ调试器附加到Jetty的最简单方法是什么? 最佳答案 对于IntelliJ中的常规调试,无论是否使用sbt编译代码,都可以按常规方式使用应用程序运行/调试配置。 要连接到在Jetty中运行的应用程序,您需要创建一个远程调试配置。...
  • 在Scala中使用哪个JSON库? [关闭]
    关闭。这个问题是题外话。它当前不接受答案。                                                                                                                                                                                                                                           ...
公众号