Scala 如何使用PartialFunction编写匹配语句?

考虑以下几点: scala> object Currency extends Enumeration { | type Currency = Value | val USD = Value | val GBP = Value | val EUR = Value | val TRY = Value // Turkish lira | val NGN = Value // Nigerian naira

从查询返回时,scala类中未设置任何字段

我有一个Scala类,用户: class User { @OId var id: String = _ var email: String = _ var password_hash: String = _ var password_salt: String = _ var admin : Boolean = _ @OVersion var version: String = _ } 我可以成功地在数据库中创建和存储用户对象,但当我查询用户时,例如D

Scala 选项[Map[String,String]]可以奇怪地获得一个值

我发现选项[Map[String,String]]的工作方式很奇怪: scala> val fileInfo: Option[Map[String, String]] = Some(Map( "type" -> "hoge" )) fileInfo: Option[Map[String,String]] = Some(Map(type -> hoge)) scala> fileInfo.get("type") res1: String = hoge 我认为op

如何在Scala中创建对象列表(即单例)?

假设我有以下代码 trait T object O extends T 现在假设我想创建一个大小为10的列表[T],它由O填充。 换句话说,列表应该看起来像O,O,O,…,O 尝试使用通常的Scala方法1直到10 map x=>O toList创建一个列表[O.type] 谢谢。明确指定您的类型: val l: List[T] = (1 until 10) map (x => O) toList 明确指定您的类型: val l: List[T] = (1 until 10) map

Scala 什么是“点名”?

我正在做一项家庭作业,要求我们用我们使用Scheme开发的特定语言实施一种名为“点名”的评估策略 我们收到了一封电子邮件,但我不明白“按姓名呼叫”是如何工作的,以及“按需呼叫”与“按需呼叫”有何不同?按需呼叫是“按姓名呼叫”的一种记忆版本,请参见 在“按名称调用”中,每次使用参数时都会对其进行求值,而在“按需要调用”中,第一次使用参数时会对其进行求值,并记录该值,以便随后无需重新求值。按名称调用是一种参数传递方案,在使用参数时对其进行求值,而不是在调用函数时对其进行求值。以下是伪C语言中的一个示

Scala初学者资源

请建议在哪里找到有用和有趣的Scala 文章 代码示例 与Scala专家交流的网站 什么样的项目(多线程、基于web的项目)适合在Scala中启动代码,以显示该语言的所有功能? 因此,请为第一个Scala项目提出一项任务。我一年前开始学习Scala,我认为下面是贝西的前进方向: Martin odersky的Scala函数编程——coursera课程非常出色。它将让您快速开始使用工具和介绍(repl模式、工作表、编译和运行等)。这也让你很好地理解了功能范例,并且很好地涵盖了语法。我认为这是最

Scala/Play:分配一个尚未存在的值

假设我有这样的东西: case class User(id:Option[Long], name: String) case class Account(id:Option[Long], userId: Long) object Account { // apply method def apply(i: Identity): Account = { Account(None,SomeFutureUserId) } } 由于某些原因,这不起作用: A

带有闭包的Scala联合类型

我正在试用迈尔斯·萨宾博客文章中定义的Scala的联合类型: 并在 对于这里定义的简单用例,它们可以正常工作,但我尝试使用它们在Play框架中创建一个通用JSON解析器,它只接受某些值String、Boolean、Int、Undefined,然后成功地传递它们 这是我的密码: type UpdateType = Option[String] |∨| Option[Int] |∨| Option[Boolean] |∨| Option[List[Int]] def withValue[T : (

远程语法糖不适用于Scala中的BigInt

我有一个SyntactCSugar类,我用它在一些文件中导入椭圆曲线上的语法糖 class SyntacticSugar[Point](curve : Curve[Point]) { case class EllipticOperand (p : Point) { def + (q : => Point) = curve.sum(p,q) def * (n : => BigInt) = curve.times(p,n) } implicit def PointToOperan

Scala Akka中的收割者模式将其终止的消息发送到死信盒

我一直在尝试Akka团队提出的建议。它在理论上听起来不错,但提供的单元测试在sbt或Eclipse的JUnit runner中都没有通过 import scala.concurrent.duration._ import akka.util.Timeout import akka.actor._ import akka.testkit.{TestKit, ImplicitSender, TestProbe} import org.scalatest.{WordSpec, BeforeAndAft

如何使用Scala使用JavaFX创建组合框?

并填充组合框 以java中的方式执行此操作: ObservableList<String> options = FXCollections.observableArrayList( "Option 1", "Option 2", "Option 3" ); final ComboBox comboBox = new ComboBox(options); -产生一个错误我不是Scala程序员,但我认为这甚至不会用Java编译。类型不兼容。如果使用Scala

Scala SBT未解析SBT插件依赖关系

我正在从移动我的应用程序RUN@Cloud给Heroku。我尝试使用插件将应用程序部署到Heroku。依赖项不希望解析 [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: UNRESOLVED DEPENDENCIES :: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: com.heroku#sbt

Scala 参数化类型的类上的flatMap无法编译

有人能告诉我为什么会发生以下情况: case class Item[A, B, C](a : A, b: B, c: C) val s1 = Seq(1, 2, 3) val s2: Seq[Item[_,_,_]] = Seq(Item(3, "q", "r"), Item(4, "s", "t"), Item(5, "u", "v")) s1.flatMap { i => s2.find(_.a == i) match { case Some(i2) => Some(

Scala 如何在Play 2.3.7中使用Redis

我刚刚通过以下方式启用了Redis。在应用程序首次启动时,一切都可以正常编译,并加载Redis: [info] application - Redis Plugin enabled. Connecting to Redis on localhost:6379 to 0 with timeout 2000. [info] application - Redis Plugin pool configuration: redis.clients.jedis.JedisPoolConfig@287ab5

软超时使用Scala^Z3使Scala程序的主实例崩溃

我使用Scala^Z3在Scala中使用Z3。现在我正在做一些实验,其中包括解决变得非常复杂的问题,以取消当前的计算 我尝试过软超时,从文档中可以看出,这对我来说是一个完美的选择。我是这样用的: config.setParamValue("SOFT_TIMEOUT", "5200") 但是,它并没有取消计算,而是导致整个Scala程序崩溃,并显示错误消息error:invalid usage 为了防止主程序死机,我尝试使用类似于Futures的并发性,但在重新启动程序之前,我不能再在程序中使用

Scala:如何模式匹配内部case类的封闭对象?

我有一个内部case类,特别是一个来自question的事件,并希望匹配它,包括外部对象: class Player { var _life = 20 def life = _life def gainLife(life: Int) = execute(GainLife(life)) case class GainLife(life: Int) extends Event { def execute() = _life += life } } 我可以很容易地编写

如何从sbt任务(build.scala)发布本地

如何从Build.scala中的代码而不是从sbt命令行将项目发布到本地常春藤存储库?这应与在sbt命令行上发出publish命令执行相同的操作 我有一个多项目构建定义,我只希望其中一个包含的项目发布到本地ivy存储库。在.sbt构建中,您会写: val myTask = taskKey[Unit]( "runs publish and does some other stuff too") myTask := { val result = publishLocal.value pr

Scala 泛型实现应根据子类返回子类型

在我的应用程序中,有很多资源是以相同的方式加载的,所以我想抽象这些方法 我创造了一种叫做资源的特质 现在,这种特质有三项任务要完成 它为任意数量的资源实现缓存。 它为可以加载该类型资源的所有加载程序实现一个映射。例如,对于可能包含PNGLoader、JPGLoader甚至GIFLoader的资源映像 实现通用/默认方法来检索给定路径上的资源 看起来是这样的: trait Resources { private val loaders: mutable.HashMap[String, Re

Scala 在数组之后使用“*”表示什么?

我一直在编写一些scala代码,我遇到了在数组后面使用的*,如以下参数:* 有人能告诉我它的含义吗?您可以定义一个接受可变数量参数的函数,如: def print(args: String*) { elements.foreach(println) } 您可以使用多个参数调用此函数: print("a") print("a","b") 或者,如果您有一个序列,您可以使用列表调用它,但在这种情况下,您需要使用*语法来显示序列,而不是将其作为单个参数传递 val l = List("a","

Scala对象加载

我想建立一个工厂。我的应用程序中只能有一个此工厂的实例。我的工厂在创建第一个MyObject之前需要做一些准备,只有在那时。还有比这更好的方法吗 object MyObjectFactory { private var isApplied:Boolean = false def apply() = { if(!isApplied) { isApplied = true; onLoad }

Scala 两个看似相同的字符串的行为不同

请看以下编译良好的代码: trait ParserError trait Parser[+A]{ def run[A](input:A):Either[ParserError, A] } object Parser{ case object ParserErrorImpl extends ParserError def string(s:String):Parser[String] = new Parser[String]{ def run[String](input:S

Scala Akka(JVM)在ActorSystem之前初始化记录器

我有一个应用程序,它需要调用一些外部系统来解密敏感信息,以便在能够创建actor系统将使用的配置之前保持简短 是否可以在我的流程开始时初始化记录器,以便监控/调查工具在与外部系统的通信出错时可以访问日志 // the following call will modify the config from a secret id read in the conf // and write the value "redis.password" after getting the value from

Scala Apache PDFBox,可装箱-HTML有序/无序列表显示不正确

我正在尝试使用ApachePDFBox和dhorions/boxable库创建pdf文件。但是,在单元格中显示嵌套的html列表时遇到问题 val document: PDDocument = new PDDocument() var myPage: PDPage = new PDPage(PDRectangle.A4) document.addPage(myPage) var yPosition: Float = 777 val margin = 40 val bottomMargin = 4

用spark流scala应用聚合函数

我需要使用apache spark streaming NO apache spark streaming SQL对数据流应用聚合函数 在我的例子中,我有一个卡夫卡制作人以JSON格式发送消息。 格式为{'a':字符串,'b':字符串,'c':整数,'d':双精度} 我需要每5秒对属性“a”和“b”进行聚合,并且我必须对其他2个属性应用聚合函数,例如平均值、总和、最小值或最大值 我该怎么做 感谢让您开始,您可以这样处理聚合: import sparkSession.implicits._ js

Scala Spark历史服务器

我目前正在使用IntelliJ IDE开发Scala中的Spark。当我的程序执行时,我可以访问web UI,但之后我无法访问历史服务器 任何帮助都将不胜感激,顺便说一下,我正在使用windows。 我还在C:/tmp/spark events上创建了一个日志文件夹,并通过以下方式编辑了spark-defaults.conf: # Example: # spark.master spark://master:7077 # spark.eventLog.en

Scala 如何在相同/不同年份的两周编号之间生成所有周?

在我的应用程序中,一周表示为字符串,格式为: {year}-{week-no} // week-no ranges from 1 to 52 例如:2017年第7周表示为:2017-07 我想写一个方法,它需要两个星期的日期,并在这两个给定的星期之间生成所有的星期。因此,如果我通过: 2017-05和2017-08(相同年份):方法应返回列表(2017-052017-062017-072017-08) 2017-05和2019-02(不同年份):方法应返回列表(2017-052017-06,

Scala 如何计算RDD[Long]的标准偏差和平均值?

我把RDD[Long]称为mod,我想用Spark 2.2和Scala 2.11.8计算这个RDD的标准偏差和平均值 我怎么做 我试着按如下方式计算平均值,但是有没有更简单的方法来获得这些值 val avg_val = mod.toDF("col").agg( avg($"col").as("avg") ).first().toString().toDouble val stddev_val = mod.toDF("col").agg( stddev($"col").as("a

Scala Meta:对版本感到困惑

在中,您可以找到Scala Meta的两个版本 lazy val MetaVersion = "3.7.2" lazy val MetaVersion1 = "1.8.0" 我有点困惑,因为他们似乎是指同一个项目: lazy val scalameta1 = "org.scalameta" %% "scalameta" % MetaVersion1 lazy val scalameta = "org.scalameta" %% "scalameta" % MetaVersion 有人能指出其

Scala 新列接收空值

我有以下数据帧df 然后我添加列速率,如下所示: df .withColumn("Rate",when(col("nodes_count") =!= 0, (lit("edges_count")/lit("nodes_count")).as[Double]).otherwise(0.0)) 这就是我得到的: +-----------+-----------+-----------+-----------------------+ |CommunityId|nodes_count|edges

将分钟转换为小时scala

我有一个以分钟为单位的数字,例如: Int totalminutes= 342 我想这样说: 5h:42m:..s 我使用scala函数将分钟转换为小时,并返回HH:MM:SS 我做了测试: scala> convertSeconds(120) // 120 minutes res22: String = 2h:2m:0s // why it add 2 minutes scala> convertSeconds(60) // 60 minutes res23: String

Scala 询问模式覆盖消息是否收到

我定义了以下消息和参与者: case class Message1(text: String) case class Message2(text: String) case class Message3(text: String) class Actor1(actor2: ActorRef) extends Actor { def receive = { case Message1(text) => (actor2 ? Message2(t

Scala 如何编写作为二进制运算符的函数?

在Scala程序中,我有一个数据类型Foo,我想为它编写一个二进制运算符>> 下面是一些示例代码 class Foo {} object BinaryOps { def >>(f1: Foo, f2: Foo): Foo = ??? def main(args: Array[String]): Unit = { val f1 = new Foo() val f2 = new Foo() // val f3 = f1 >> f2 // Er

RDD scala spark中的完全外部连接

我有以下两个文件: 文件1 文件2 现在,我希望联接列在字段1中具有相同的值。 我想要这样的东西: 0000005 崎村______ 50 F 82 79 16 21 80 0000003 杉山______ 26 F 30 50 71 36 30 0000007 梶川______ 42 F 50 2 33 15 62 您可以使用数据帧连接概念而不是RDD连接。那很容易。您可以参考下面的示例代码。希望这对你有帮助。 我认为您的数据格式与您上面提到的相同。如果是CSV或任何其他格式,则可以跳过步

Scala akka http测试套件,已键入akka actor测试套件

我正在尝试使用akka http测试TypedActor,但在尝试创建测试用例时遇到问题。 为了测试TypedActor,我将编写以下规范 class MyServiceTestSpec extends ScalaTestWithActorTestKit with FlatSpecLike with Matchers 但是,当我必须编写一个与HTTP/+WS-route一起使用的TypedActor时,我无法编写 class MyHTTPServiceTestSpec extends Scal

Scala 在插入的字符串中使用转义引号和大括号

我正在编写一个(插入的)字符串,它通常理解用户应该理解为预期输入的占位符的{thing}部分。因为没有前导的$,所以我想花括号应该是字面意思 第一次尝试:花括号 val name = "Michael" println(s"Hi, $name! Please enter your birthday in the form \"{month} {day}\".") IntelliJ的想法让我没有理由担心。看起来像一个普通的旧字符串: 但我收到一个错误: 未找到:值月份 第二次尝试:方括号 va

Scala 如何定义空元组?

我有以下函数定义: private def extractUrl: String => (String, String) = url => url .split("/") .toList .filter(_.startsWith("localhost")) .flatMap(e => e.split(":").toList) .foldLeft[(String, String)](("", "")) {

Scala 让Slick使用表中定义的实体来填充SQL查询和响应

假设我在Slick中定义了一个Person案例类和一个PersonTable,我想知道是否可能有这样的编译和工作: case class Person(id: Long, ....) class PersonTable(tag: Tag) extends Table[Person](tag, "PERSON") { def serverId = column[Long]("ID") ... def * = (id, ...).mapTo[Person] } sql"select

Scala 在Spark中强制立即缓存最有效的方法是什么?

出于计时目的,我需要在执行函数之前强制缓存。 我最初的方法是使用count操作,因为这将跨所有分区缓存RDD,这与take不同,但是有没有更有效的方法来强制它执行计算、通信或时间 // Load data, partition and mark to be cached val data = sc.textFile("input.txt").map(_.toInt) val partitioner = new RangePartitioner(16, data) val partitioned_

Java`Class`类的Scala等价物?

在Java中,有一个表示类的类。当您需要在运行时动态执行某些类检查时,它非常有用,例如,如果某个接口可以接受不同数量的参数,并且它希望这些参数具有特定类型:那么该接口可以返回类对象列表以指定其要求 显然,它在Scala中也可用,但只是作为Java类的别名。在Scala或一般情况下,在纯Scala代码中使用这个类可以吗,还是有更惯用的方法来实现同样的事情 关于更多的背景,这是我的想法: trait BuiltInFunction[Node] { def symbol: String def

在scala中使用sc.parallelize()

嗨,我是scala的新手,尝试使用sc.parallalize,遇到了附件中的错误 看起来Java版本错误,无法安装正确版本的Java 请不要将代码和错误作为截图发布,只需发布格式正确的文本即可。另外,看看

Scala 如何在抽象效果类型上配置Cats计时器

假设我在使用Cats效果和无标记最终方法的项目中有以下方法签名: def schedule[F[_]: Applicative : Async: Timer] 我正在尝试使用纯FP调度调度方法调用上的操作 我试着这样做: Timer[F].sleep(FiniteDuration(10, TimeUnit.SECONDS)) *> { Applicative[F].pure(println("tick")) } 但它并没有起作用,因为printlntick的

Scala 为什么函数参数名中不允许尾随下划线?

我尝试在Scala函数参数名称中使用尾随下划线,以避免与关键字类型冲突,但出现错误: 欢迎使用Scala 2.13.1 Java HotSpotTM 64位服务器虚拟机Java 11.0.1。 键入要计算的表达式。或者尝试:帮助。 scala>def footype_u2;:Char:Char=type_ ^ 错误:“:”应为,但找到标识符。 斯卡拉> 我读了一些关于Scala中下划线使用的解释,但没有一个提到我的案例我相信这是一个lexer将类型\视为有效参数名,解析器获得类型\标识符,后跟C

  1    2   3   4   5   6  ... 下一页 最后一页 共 1768 页