Questions tagged «scala»

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

3
build.sbt和build.scala有什么区别?
我开始学习Scala,几乎在每个教程中,我都看到一个build.sbt描述项目设置的文件。但是现在我已经giter8从模板安装并创建了一个项目。并从模板丢失的build.sbt文件生成了项目,但是它具有build.scala(似乎用于相同的目的,但是更灵活)。 那么build.sbt和之间有什么区别build.scala? 哪个更优选?为什么?
107 scala  sbt 


5
功能设计模式
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 有很多功能性习语:m​​onad,applicatives,arguments等。它们在不同的文章中都有记录,但不幸的是,我不知道任何本书或文章在一个地方对其进行了总结(有Typeclassopedia,但它有很多覆盖率不高的区域)。任何人都可以推荐一篇文章/书,该书/书在一个地方就可以很好地覆盖它们,并且对FP具有中级技能的程序员可以访问吗?

1
使用Scalaz 7 zipWithIndex / group枚举避免内存泄漏
背景 如该问题所述,我正在使用Scalaz 7迭代器在恒定堆空间中处理大量(即无边界)数据流。 我的代码如下所示: type ErrorOrT[M[+_], A] = EitherT[M, Throwable, A] type ErrorOr[A] = ErrorOrT[IO, A] def processChunk(c: Chunk, idx: Long): Result def process(data: EnumeratorT[Chunk, ErrorOr]): IterateeT[Vector[(Chunk, Long)], ErrorOr, Vector[Result]] = Iteratee.fold[Vector[(Chunk, Long)], ErrorOr, Vector[Result]](Nil) { (rs, vs) => rs ++ vs map { case (c, i) => processChunk(c, i) …
106 scala  scalaz  iterate 

6
什么时候可以省略括号,点,花括号,=(函数)等的确切规则是什么?
何时可以省略(省略)括号,点,花括号,=(函数)等的确切规则是什么? 例如, (service.findAllPresentations.get.first.votes.size) must be equalTo(2). service 是我的对象 def findAllPresentations: Option[List[Presentation]] votes 退货 List[Vote] 必须和是有规格的两种功能 我为什么不能去: (service findAllPresentations get first votes size) must be equalTo(2) ? 编译器错误是: “类型为Option [List [com.sharca.Presentation]]的RestServicesSpecTest.this.service.findAllPresentations不接受参数” 为什么会认为我要传递参数?为什么在每个方法调用中都必须使用点? 为什么必须(service.findAllPresentations get first votes size)equalTo(2)导致: “未找到:价值至上” 但是,“必须等于2” (service.findAllPresentations.get.first.votes.size)必须等于2,也就是说,方法链接可以正常工作吗?-对象链链链参数。 我浏览了Scala的书和网站,却找不到真正的全面解释。 实际上,正如Rob H在Stack Overflow问题中解释的那样,我可以在Scala中省略哪些字符?,这是省略“。”的唯一有效用例。是用于“操作数运算符操作数”样式的操作,而不是方法链接?
106 syntax  scala 

3
何时使用参与者代替诸如WebSphere MQ或Tibco Rendezvous之类的消息传递解决方案?
我已经阅读了以下问题和答案:哪些设计决策会偏爱Scala的Actors而不是JMS?。 通常,我们使用已经存在多年的消息传递解决方案:使用WebSphere MQ或Apache ActiveMQ之类的JMS实现进行点对点通信,或者使用Tibco Rendevous进行多播消息传递。 它们非常稳定,经过验证,并提供高可用性和高性能。但是,配置和设置似乎比Akka复杂得多。 在迄今已成功使用上述产品(WebSphere MQ或ActiveMQ)的某些用例中,何时以及为何使用Akka?为什么在我的未来项目中应该考虑使用Akka代替WebSphere MQ或Tibco RV? 我什么时候应该避免Akka?它是否提供与其他解决方案相同的高可用性和性能?还是将Akka与其他消息传递中间件进行比较是一个坏主意吗? 也许除了JMS(点对点),TibcoRV(多播)和Akka之外,我还应该考虑JVM环境中的另一种消息传递解决方案?
106 java  scala  jms  actor  akka 

5
声明Scala案例类有什么缺点?
如果您正在编写使用许多漂亮的,不变的数据结构的代码,那么case类似乎是天赐之物,只需一个关键字即可免费为您提供以下所有功能: 默认情况下所有内容都是不可变的 自动定义吸气剂 体面的toString()实现 兼容的equals()和hashCode() 使用unapply()方法进行匹配的随播对象 但是将不可变数据结构定义为案例类的缺点是什么? 它对班级或其客户有什么限制? 在某些情况下,您应该偏爱非案例类吗?
105 scala  case-class 

3
如何从列表中滤除所有内容?
如果我List[Option[A]]在Scala中有一个,过滤None值的惯用方式是什么? 一种方法是使用以下方法: val someList: List[Option[String]] = List(Some("Hello"), None, Some("Goodbye")) someList.filter(_ != None) 还有更“惯用”的方式吗?这看起来确实很简单。
105 scala  option 

7
用于Rest API服务器的Scala框架?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 我们正在考虑将Rest API服务器(在Symfony PHP上的Web服务中)移动到Scala的原因有以下几种:速度,无开销,较少的CPU,较少的代码,可伸缩性等。几天前,但我一直很享受这些天从Scala书籍以及所有博客文章和问题中学到的东西(这并不难看!) 我有以下选择: 从头开始构建Rest API服务器 使用像Scalatra这样的小型Scala Web框架 使用升降机 我将不得不使用的一些东西:HTTP请求,JSON输出,MySQL(数据),OAuth,Memcache(缓存),日志,文件上传,统计信息(也许是Redis)。 你会推荐什么?
105 api  rest  scala  lift 

5
如何将java.util.List转换为Scala列表
我有以下错误的Scala方法。无法转换为Scala列表。 def findAllQuestion():List[Question]={ questionDao.getAllQuestions() } 类型不匹配; 找到:java.util.List[com.aitrich.learnware.model.domain.entity.Question]必填: scala.collection.immutable.List[com.aitrich.learnware.model.domain.entity.Question]


4
sbt如何从git中提取依赖项工件?
我听说过(如果我只记得我在哪里的话,我也已经看过示例)sbt可以从git repo获取依赖项。 我正在寻找从github 获取依赖项harrah / up。该存储库不提供任何工件JAR文件,仅提供被设置为使用构建的源树sbt。我想象的过程是sbt将下载源存储库,进行构建,然后将其用作依赖项。 我可能sbt在想,实际上可以做这样的事情。它可以?如果是这样,怎么办?

9
Scala有哪些自动资源管理替代方案?
我在Web上看到了很多Scala的ARM(自动资源管理)示例。写一个似乎很容易,尽管大多数看上去很像。我确实看到了一个使用延续的非常酷的示例。 无论如何,很多代码都存在一种或另一种类型的缺陷,因此我认为在Stack Overflow上引用一个参考是一个好主意,我们可以在其中引用最正确和最合适的版本。

5
Scala类型编程资源
根据这个问题,Scala的类型系统是图灵完整的。有哪些可用资源使新手能够利用类型级编程的功能? 这是我到目前为止找到的资源: 丹尼尔·斯皮瓦克(Daniel Spiewak)在斯卡拉大地的高级巫术 Scala中 Apocalisp的类型级别编程 杰斯珀的HList 这些资源很棒,但是我觉得我缺少基础知识,因此没有扎实的基础。例如,哪里有类型定义的介绍?我可以对类型执行哪些操作? 有什么好的入门资源吗?
102 scala  types 

4
如何按两个字段对Scala中的列表进行排序?
如何在Scala中按两个字段对列表进行排序,在此示例中,我将按lastName和firstName进行排序? case class Row(var firstName: String, var lastName: String, var city: String) var rows = List(new Row("Oscar", "Wilde", "London"), new Row("Otto", "Swift", "Berlin"), new Row("Carl", "Swift", "Paris"), new Row("Hans", "Swift", "Dublin"), new Row("Hugo", "Swift", "Sligo")) rows.sortBy(_.lastName) 我尝试这样的事情 rows.sortBy(_.lastName + _.firstName) 但这不起作用。因此,我对一个好的简单解决方案感到好奇。

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.