Questions tagged «scala»

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

11
应用风格的实际用途是什么?
我是Scala程序员,现在正在学习Haskell。很容易找到面向对象概念的实际用例和现实示例,例如装饰器,策略模式等。书和互连网充满了它。 我意识到功能性概念并非如此。恰当的例子:应用剂。 我正在努力为应用程序找到实际的用例。几乎所有的教程和书籍的我所遇到到目前为止提供的示例[]和Maybe。我希望应用程序能够比FP更加适用,因为他们在FP社区中得到了所有关注。 我认为我理解了应用程序的概念基础(也许我错了),并且我一直在等待启蒙的时刻。但这似乎没有发生。从来没有在编程时,我有一阵子会高兴地喊着:“尤里卡!我可以在这里使用应用程序!” (同样,for[]和除外Maybe)。 有人可以指导我如何在日常编程中使用应用程序吗?如何开始发现图案?谢谢!

7
使用IntelliJ设置Scala
我有安装了scala插件的Intellij Ultimate 11.1。 我使用自制软件安装了scala 2.9.2,它将scala放入: /usr/local/Cellar/scala/2.9.2> >which scala /usr/local/bin/scala >scala -version Scala code runner version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL 创建一个新的Java模块项目,我得到以下信息: 有人可以帮我解决这些问题吗,为什么scala插件无法使这项工作立即可用?:)

3
有人可以向我解释Shapeless库的用途吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 有人可以简单地向我解释Shapeless库的用途吗? Scala具有泛型和继承功能,因此我对Shapeless的用途感到有些困惑。 也许用例来说明问题会有所帮助。
70 scala  shapeless 

6
是否在sbt中为Scala项目执行Java版本?
我的scala应用程序只能在Java 7上运行,因为它依赖于仅在该JDK版本中出现的库。 我如何在sbt中强制执行该操作,以便在启动sbt来运行/编译应用程序时使用错误版本的Java的用户立即显示正确的错误消息? 注意:没有Java™源代码可在此处进行编译。我只有Scala源代码。Scala代码需要import java.nio.file.PathJava 7中提供的。
70 java  scala  sbt 

5
Scala-Seq的大小和长度有什么区别?
Seq的大小和长度有什么区别?什么时候使用,什么时候使用? scala> var a :Seq[String] = Seq("one", "two") a: Seq[String] = List(one, two) scala> a.size res6: Int = 2 scala> a.length res7: Int = 2 一样的? 谢谢
70 scala  scala-2.10  seq 

10
如何透视Spark DataFrame?
我开始使用Spark DataFrames,我需要能够旋转数据以在多行1列中创建多列。在Scalding中有内置的功能,我相信Python中的Pandas,但是对于新的Spark Dataframe我找不到任何东西。 我假设我可以编写某种自定义函数来执行此操作,但是我什至不确定如何开始,尤其是因为我是Spark的新手。我谁都知道如何使用内置功能来做到这一点,或者对如何在Scala中编写东西的建议,这一点深表感谢。

2
模式匹配“ @”符号
给定此Person案例类: scala> case class Person(name: String, age: Int) {} defined class Person ...和这个实例 scala> val b = Person("Kevin", 100) b: Person = Person(Kevin,100) 是否有理由偏爱此代码(带有@) scala> b match { | case p @ Person(_, age) => println("age") | case _ => println("none") | } age ...在以下? scala> b match { | …

5
为什么追加到列表不好?
我最近开始学习scala,并且遇到了::(cons)函数,该函数位于列表的前面。 在《 Scala中的编程》一书中,它指出没有附加功能,因为附加到列表的性能为o(n),而前置的性能为o(1) 关于那句话,我有些不对劲。 性能不取决于实现吗?难道不能简单地实现带有向前和向后链接的列表并将第一个和最后一个元素存储在容器中? 我想的第二个问题是,当我有一个列表1,2,3并想在其末尾加4时该怎么办?

1
将类型与数据构造函数相关联的ADT编码有什么问题?(例如Scala。)
在Scala中,代数数据类型被编码为sealed一级类型层次结构。例: -- Haskell data Positioning a = Append | AppendIf (a -> Bool) | Explicit ([a] -> [a]) // Scala sealed trait Positioning[A] case object Append extends Positioning[Nothing] case class AppendIf[A](condition: A => Boolean) extends Positioning[A] case class Explicit[A](f: Seq[A] => Seq[A]) extends Positioning[A] 随着case classES和case objectS,斯卡拉产生了一堆东西一样equals,hashCode,unapply(通过模式匹配使用)等这使我们许多关键特性和传统的ADT功能。 但是,有一个关键的区别–在Scala中,“数据构造函数”具有自己的类型。比较以下两个示例(从相应的REPL复制)。 // Scala …



3
Scala中的带有期货的异步IO
假设我要从一些URL下载一个(可能很大)图像列表。我正在使用Scala,所以我要做的是: import scala.actors.Futures._ // Retrieve URLs from somewhere val urls: List[String] = ... // Download image (blocking operation) val fimages: List[Future[...]] = urls.map (url => future { download url }) // Do something (display) when complete fimages.foreach (_.foreach (display _)) 我对Scala有点陌生,所以对我来说,这仍然有点像魔术: 这是正确的方法吗?如果不是,还有其他选择吗? 如果我要下载100张图像,这会一次创建100个线程,还是会使用线程池? 最后一条指令(display _)是否会在主线程上执行,否则,如何确定? 谢谢你的建议!

2
案例类继承的“错”是什么问题?
在寻找其他东西时,我完全出于偶然,偶然发现了几句有关恶性案例类继承的评论。有一个叫做的东西ProductN,可怜的人,国王,精灵和巫师,以及案例类继承如何丢失了某种非常理想的属性。那么,案例类继承有什么问题呢?

12
如何从Spark中的CSV文件中跳过标题?
假设我给出了三个要读取的Spark上下文的文件路径,并且每个文件的第一行都有一个架构。我们如何从标题中跳过模式行? val rdd=sc.textFile("file1,file2,file3") 现在,我们如何跳过此rdd的标题行?

11
Scala双重定义(2种方法具有相同的类型擦除)
我在scala中编写了此代码,但无法编译: class TestDoubleDef{ def foo(p:List[String]) = {} def foo(p:List[Int]) = {} } 编译器通知: [error] double definition: [error] method foo:(List[String])Unit and [error] method foo:(List[Int])Unit at line 120 [error] have same type after erasure: (List)Unit 我知道JVM没有对泛型的本机支持,所以我理解此错误。 我可以写包装器List[String],List[Int]但是我很懒:) 我对此表示怀疑,但是还有另一种表达方式与之List[String]不同List[Int]吗? 谢谢。

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.