Questions tagged «scala»

Scala是主要针对Java虚拟机的通用编程语言。它旨在以简洁,优雅和类型安全的方式表达常见的编程模式,它融合了命令式和功能性编程风格。它的主要特征是:具有类型推断功能的高级静态类型系统;功能类型;模式匹配; 隐式参数和转换;操作符重载;与Java完全互操作性;并发

2
Build.scala,%和%%符号含义
我是新手!Framework 2.1(Java版本),没有使用scala的经验。我不明白Build.scala中的含义%和%%含义。我用谷歌搜索了它们,但找不到它们的含义。 在我的Build.scala文件中,我有: "org.hibernate" % "hibernate-entitymanager" % "4.1.0.Final", "com.typesafe" %% "play-plugins-mailer" % "2.1" 为什么第一行使用单个百分比符号,第二行使用两个百分比符号%%?他们是干什么的?

4
=>,()=>和Unit =>有什么区别
我试图表示一个不带参数也不返回任何值的函数(如果您一定要知道的话,我正在用JavaScript模拟setTimeout函数。) case class Scheduled(time : Int, callback : => Unit) 无法编译,说““ val”参数可能不是按名称调用” case class Scheduled(time : Int, callback : () => Unit) 编译,但是必须被奇怪地调用,而不是 Scheduled(40, { println("x") } ) 我必须这样做 Scheduled(40, { () => println("x") } ) 也有效的是 class Scheduled(time : Int, callback : Unit => Unit) 但以一种不太明智的方式被调用 Scheduled(40, { x …
153 scala 

4
Scala中的lambda类型是什么,它们有什么好处?
有时我迷迷糊糊的 def f[T](..) = new T[({type l[A]=SomeType[A,..]})#l] {..} 在Scala博客文章中,这给了它“我们使用了type-lambda技巧”的通知。 尽管对此有所了解(我们A无需匿名定义就可以获取匿名类型参数?),但我找不到明确的来源来描述lambda类型的技巧是什么,以及它的好处。它只是语法糖,还是开辟了新的领域?
152 scala  types 

23
如何在Spark SQL的DataFrame中更改列类型?
假设我正在做类似的事情: val df = sqlContext.load("com.databricks.spark.csv", Map("path" -> "cars.csv", "header" -> "true")) df.printSchema() root |-- year: string (nullable = true) |-- make: string (nullable = true) |-- model: string (nullable = true) |-- comment: string (nullable = true) |-- blank: string (nullable = true) df.show() year make model comment blank 2012 …

10
为什么要在Java / Spring上使用Scala / Lift?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 改善这个问题 我知道这个问题有点悬而未决,但是我一直在将Scala / Lift视为Java / Spring的替代品,我想知道Scala / Lift在此之上的真正优势是什么。从我的观点和经验来看,Java Annotations和Spring确实最小化了您为应用程序要做的编码量。Scala / Lift是否会对此有所改善?
151 java  spring  scala  lift 

2
Shapeless中Nat类型的限制
在无形状中,Nat类型表示一种在类型级别编码自然数的方法。例如,这用于固定大小的列表。您甚至可以在类型级别上进行计算,例如,将N元素列表追加到元素列表中,K并获取在编译时已知具有N+K元素的列表。 这种表示是否能够表示较大的数字(例如10000002 53),还是会导致Scala编译器放弃?

5
sbt中的ScalaTest:有没有办法运行没有标签的单个测试?
我知道可以通过在sbt中运行来运行单个测试, testOnly *class -- -n Tag 有没有办法告诉sbt / scalatest运行不带标签的单个测试?例如: testOnly *class -- -X 2 这将意味着“运行班级中的第二个测试。无论它是什么”。我们有很多测试,没有人打扰他们,所以有没有办法在没有标签的情况下运行单个测试?
150 scala  testing  sbt  scalatest 

28
Scala的隐藏功能
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 每个Scala开发人员都应注意的Scala的隐藏功能是什么? 请为每个答案提供一项隐藏功能。

8
如何在数据集中存储自定义对象?
根据介绍Spark数据集: 当我们期待Spark 2.0时,我们计划对数据集进行一些激动人心的改进,特别是:...自定义编码器–虽然我们目前可以自动生成多种类型的编码器,但我们希望为自定义对象打开一个API。 并尝试在Dataset导致以下错误的情况下存储自定义类型: 找不到用于存储在数据集中的类型的编码器。导入sqlContext.implicits。支持基本类型(Int,String等)和产品类型(案例类)。_在将来的版本中将添加对序列化其他类型的支持。 要么: Java.lang.UnsupportedOperationException:未找到...的编码器。 是否有任何现有的解决方法? 请注意,此问题仅作为社区Wiki回答的切入点存在。随时更新/改善问题和答案。

4
在Scala模式匹配系统中使用比较运算符
是否可以使用Scala中的模式匹配系统进行比较匹配?例如: a match { case 10 => println("ten") case _ > 10 => println("greater than ten") case _ => println("less than ten") } 第二种情况陈述是非法的,但我希望能够指定“当a大于时”。

7
为什么Scala编译器不允许使用默认参数重载方法?
尽管在某些情况下,这种方法重载可能会变得模棱两可,但为什么编译器却不允许在编译时和运行时都模棱两可的代码呢? 例: // This fails: def foo(a: String)(b: Int = 42) = a + b def foo(a: Int) (b: Int = 42) = a + b // This fails, too. Even if there is no position in the argument list, // where the types are the same. def foo(a: Int) …

4
该示例为何不编译,又是(协方,对方和内部)方差如何工作?
接着这个问题,有人可以在Scala中解释以下内容: class Slot[+T] (var some: T) { // DOES NOT COMPILE // "COVARIANT parameter in CONTRAVARIANT position" } 我明白之间的区别+T,并T在类型声明(它编译如果我使用T)。但随后一个人如何真正写一个类,这是在其类型参数的协变而不诉诸创造的东西unparametrized?如何确保只能使用实例创建以下内容T? class Slot[+T] (var some: Object){ def get() = { some.asInstanceOf[T] } } 编辑 -现在将其归结为以下内容: abstract class _Slot[+T, V <: T] (var some: V) { def getT() = { some } } …

7
如何使用IntelliJ Idea创建SBT项目?
我刚开始开发Scala / LiftWeb / Sbt,我想在IntelliJ Idea中导入一个Sbt项目。实际上,我设法通过两种不同的方式导入我的项目: 1)和Maven一起。我创建了一个Maven项目,首先创建了一个Sbt项目,然后将其导入IntelliJ中。然后,我可以轻松地启动,停止码头服务器以及执行其他操作。但这不是我想要的。我想做同样的事情,只是没有Maven。那导致我 2)用Eclipse。因此,我创建了一个新的Sbt项目(使用编写的小脚本,将Sbt项目配置为WebProject)。然后,我使用sbt-eclipsify插件“转换”了Eclipse的项目,然后将其导入IntelliJ(现有源-> eclipse)中。但是问题从这里开始:我无法使IntelliJ Sbt插件正常工作。 谁能帮我这个?
146 scala  intellij-idea  lift  sbt 

4
HLists只不过是一种复杂的编写元组的方式吗?
我真的很想找出差异所在,并且更一般地说,是找出无法使用HLists的规范用例(或者,与常规列表相比不会产生任何好处)。 (我知道,TupleNScala 中有22个(我相信),而一个人只需要一个HList,但这不是我感兴趣的概念差异。) 我在下面的文字中标记了几个问题。可能实际上没有必要回答这些问题,它们更多的是指出我不清楚的事情,并在某些方向上指导讨论。 动机 我最近在SO上看到了几个答案,人们建议使用HLists(例如,由Shapeless提供),包括对此问题的删除答案。这引起了讨论,从而引发了这个问题。 介绍 在我看来,仅当您静态地知道元素的数量及其精确类型时,hlist才有用。该数字实际上并不是至关重要的,但似乎不太可能需要生成包含变化但静态精确知道的类型的元素的列表,而您却不能静态地知道它们的数量。问题1:例如,您是否可以编写一个循环示例?我的直觉是,拥有静态精确的hlist和静态未知数量的任意元素(相对于给定的类层次结构是任意的)只是不兼容的。 HList与元组 如果是这样,即您静态地知道数字和类型- 问题2:为什么不只使用n元组呢?当然,您可以安全地在HList上进行类型映射和折叠(也可以但不能进行安全地在HList上进行类型化productIterator),但是由于元素的数量和类型是静态已知的,因此您可以访问元组元素直接执行操作。 另一方面,如果f您在hlist上映射的函数是如此通用,以至于它接受所有元素- 问题3:为什么不通过productIterator.map?好的,方法重载可能是一个有趣的区别:如果我们有几个重载f的方法,则由hlist提供的更强的类型信息(与productIterator相比)可以使编译器选择更具体的f。但是,由于方法和函数不同,我不确定在Scala中是否真的可以使用。 H列表和用户输入 基于相同的假设,即您需要静态了解元素的数量和类型- 问题4:在元素依赖于任何类型的用户交互的情况下,可以使用hlists吗?例如,想象一下用循环内的元素填充hlist;从某个位置(UI,配置文件,actor交互,网络)读取元素,直到满足特定条件为止。hlist的类型是什么?与接口规范getElements类似:HList [...]应该与静态未知长度的列表一起使用,并允许系统中的组件A从组件B获取此类任意元素的列表。
144 scala  types  tuples  hlist  shapeless 

4
了解Scala中的“类型”关键字的作用
我是Scala的新手,我真的找不到很多关于该type关键字的信息。我试图了解以下表达式的含义: type FunctorType = (LocalDate, HolidayCalendar, Int, Boolean) => LocalDate FunctorType 是某种别名,但是它表示什么呢?
144 scala  types 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.