简单表达式缺少参数类型

2024-02-24

遵循播放 websocket 示例 http://www.playframework.com/documentation/2.3.x/ScalaWebSockets我遇到了一个奇怪的问题。

文档中的以下示例正在运行:

  Future.successful(request.session.get("user") match {
    case None => Left(Forbidden)
    case Some(_) => Right(out => ChannelActor.props(out, "", ""))
  })

为了理解代码,我尝试使用代码:

  Future.successful({
    val test = request.session.get("user") match {
      case None => Left(Forbidden)
      case Some(_) => Right(out => ChannelActor.props(out, "", ""))
    }
    test
  })

编译器抱怨该值存在“缺少参数类型”out.

这是为什么?我刚刚在测试中添加了保存的 Either 并返回了这个 val 而不是 match 语句本身。

thanks


原因是Scala编译器无法推断出类型out。你永远不会告诉编译器(或读者)什么类型out实际上是。可以看到它是一个函数返回类型Props,但从未指定其输入是什么类型。因此,您可以从此代码中派生的类型信息只是Future[Either[Result, ??? => Props].

您通过注释此处理函数解决了这个问题val handler: HandlerProps这是一个别名val handler: ActorRef => Props。因此,通过使用类型信息对其进行注释,您可以为 Scala 编译器提供足够的类型信息来编译它。您也可以通过编写来做到这一点Right(out: ActorRef => ChannelActor.props(out, "", "")),或写作val test: Either[Result, HandlerProps] = ... match {.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单表达式缺少参数类型 的相关文章

  • 使用空/空字段值创建新的数据框

    我正在从现有数据帧创建一个新数据帧 但需要在这个新 DF 中添加新列 下面代码中的 field1 我该怎么做 工作示例代码示例将不胜感激 val edwDf omniDataFrame withColumn field1 callUDF v
  • 对象内的类中的 Scala 抽象类型

    如果我这样做 object Parent class Inner extends Testable type Self lt Inner def inner new Inner object Child class Inner extend
  • 在 Play 上强制实施 SSL!框架

    我目前正在使用 Play 1 2 2 及其新的 Netty 客户端框架 尽管可以让 HTTP 和 HTTPS 异步服务 但我还没有找到一种简单的方法来强制执行 SSL 有没有人使用过 Play 有强制实施 SSL 的简单方法吗 不确定我是否
  • Scala 中的类型安全原语

    我希望在我的 Scala 代码中拥有类型安全的原语 子类 而不会受到装箱性能的影响 对于延迟非常低的应用程序 例如 这样的事情 class Timestamp extends Long class ProductId extends Lon
  • Scala 将字符串转换为映射

    转换这个最快的方法是什么 a ab b cd c cd d de e ef f fg 进入 scala 中的可变映射 我从 500MB 文件中读取了这个输入字符串 这就是我关心速度的原因 如果您的 JSON 像您的示例一样简单 即一系列键
  • 将参数传递给 Scala 对象

    是否可以从外部对象初始化 Scala 对象 我尝试初始化的 Scala 对象没有任何 Companion 类 这是一个例子 object ObjectA val mongoDBConnectionURI This is the Val th
  • Slick 3 交易

    我对 slick 3 文档描述事务的方式感到困惑 我有 2 个光滑的代码 如下所示 def doSomething DB withTransaction implicit session gt userDao doSomething add
  • 生成 k 个成对独立的哈希函数

    我正在尝试实施一个计数最小草图 http en wikipedia org wiki Count Min sketchScala中的算法 所以我需要生成k个成对独立的哈希函数 这是一个比我以前编写过的任何东西都低的级别 除了算法类之外 我对
  • 验证是否存在唯一字符串的组合

    class Details String name String age String email String location 1 如果有详细信息列表 如下所示List
  • 如何在 Lift 中反序列化 DateTime

    我在将 org joda time DateTime 字段从 JSON 反序列化到案例类时遇到问题 JSON val ajson parse creationDate 2013 01 02T10 48 41 000 05 00 我还设置了这
  • 重载方法值与替代方法的聚合

    我有以下函数 但无法编译 private def save pea KStream String String Unit pea groupByKey aggregate gt folder String String value Stri
  • Scala 修饰符和类型参数化

    我正在创建一个记忆类 每个类都会记忆一个函数类型并具有以下定义 class MemoizedFunction1 T1 R f T1 gt R private this val cache mutable Map T1 R def apply
  • 在sbt的build.sbt文件中添加模块依赖信息

    我在 IntelliJ 中有一个多模块项目 如该屏幕截图所示 contexProcessor 模块依赖于 contextSummary 模块 一旦我在项目结构中设置了依赖项 IntelliJ 就会处理所有事情 然而 当我跑步时sbt tes
  • Scala 中的 Case 对象与枚举

    是否有关于何时使用的最佳实践指南案例类 http en wikipedia org wiki Scala 28programming language 29 Case classes and pattern matching 或 case
  • 这个错误是什么意思(SimpleHttpConnectionManager 被错误使用)?

    我正在尝试从 ElasticSearch 中读取数据到 Spark conf es resource sflow sflow es nodes ES01 es query some query rdd sc newAPIHadoopRDD
  • 从单个字符串创建 Spark DataFrame

    我正在尝试采用硬编码字符串并将其转换为 1 行 Spark DataFrame 具有单列类型StringType 这样 String fizz buzz 将得到一个 DataFrame 其 show 方法如下 fizz buzz 迄今为止我
  • scala 中“迭代 Seq 或如果为空”的更好版本?

    是否有更短 更好的方法来执行以下操作 mySeq map elmt gt do stuff if mySeq isEmpty some other stuff Ps 我正在使用 PlayFramework 这意味着在模板中使用 所以如果我错
  • 仅当要转换的函数至少有两个参数时,函数到二阶函数的隐式转换才有效

    我有隐式转换和高阶函数的问题 似乎只有当要转换的函数至少有两个参数时 函数到二阶函数的隐式转换才有效 Works implicit def conv foo Integer gt String String gt String null 不
  • 使用新的反射API,如何找到类的主构造函数?

    您可以像这样获取类的所有构造函数 import scala reflect runtime universe val ctor typeOf SomeClass declaration nme CONSTRUCTOR asTerm alte
  • 如何列出Resources文件夹中的所有文件(java/scala)

    我正在编写一个函数 需要访问资源中的文件夹 并循环遍历所有文件名 如果这些文件符合条件 则加载这些文件 new File getClass getResource images sprites getPath listFiles 返回空指针

随机推荐

  • Rails 应用程序中的 AssociationTypeMismatch(预期对象,获得 HashWithIn DifferentAccess)

    我收到 AssociationTypeMismatch 错误 但我不确定我在哪里犯了错误 我对 Rails 还很陌生 所以我猜我犯了一些愚蠢的错误 我检查了我的语法并将其与Ruby on Rails 应用程序上的 AssociationTy
  • 通过 AJAX 发送图像文件。 request.FILES 为空?

    我正在尝试使用 Ajax 发送图像数据 但request FILES我在后端得到的是空的 我已经添加了multipart form data我的形式和方法是POST 这是我的 AJAX 调用 document on submit profi
  • 如何在 Cocoa 中创建字符串的 MD5 哈希值?

    我知道 SHA 1 是首选 但这个项目要求我使用 MD5 include
  • 当对象更新时,更新对该对象的所有引用(对引用的引用)

    我想在java中声明一个对象 就像C 中指向指针的指针一样 让我给你看一个例子 At the application startup Initialize a settings container class Settings settin
  • 加速 Python

    这确实是两个问题 但它们非常相似 为了简单起见 我想我应该把它们放在一起 Firstly 给定一个已建立的 python 项目 除了简单的代码内优化之外 还有哪些不错的方法可以加速它 Secondly 用python从头开始编写程序时 有哪
  • 将服务从一项活动传递到另一项活动

    如何将服务从一项活动传递到另一项活动 我有一个音乐播放器 Activity1 它显示歌曲列表 当您单击它时 它会启动 Activity1 中的服务 我有一个按钮 用户可以单击该按钮来打开 Activity2 那么我将服务从 Activity
  • 是否可以将 stickylistviewheader 与 crisbanes pulltorefresh 合并?

    我构建了一个应用程序 其中需要 pulltorefresh 和 StickylistHeaders 我已经在应用程序中实现了 pulltorefresh 但无法使其与 StickyListHeaders 一起使用 是否可以合并这两个库 或者
  • 如何避免在回发时从 asp.net 重复输入?

    我有一个从模板表中提取数据的下拉列表 我有一个添加按钮来插入新模板 添加按钮将弹出 jQuery 弹出窗口以插入新值 将有一个保存按钮来保存新数据 On Save Click 我输入新数据并关闭弹出窗口 问题是这样的 当我刷新页面时 页面再
  • 将 C++ lambda 转换为 C 函数

    我正在编写一些包装代码 其中外部库调用 C 函数 使用可变参数模板等 关键点是外部库需要一个 c 函数 这通常没问题 因为这是合法的 LibraryFuncType fn params 虽然我可以轻松地手动完成此操作 但我想使用以下方法自动
  • 使用 DeviceWatcher 监视 USB 驱动器并检索设备信息?

    I m a WinForms开发人员和我已经知道如何使用 WMI 监视连接或断开连接的 USB 但不久前我发现了设备观察者 http msdn microsoft com en us library windows devices enum
  • 将字符串转换为八进制数的最Pythonic方法

    我希望使用存储在配置文件中的文件掩码来更改文件的权限 由于 os chmod 需要八进制数 因此我需要将字符串转换为八进制数 例如 000 gt 0000 or 0o000 for you python 3 folks 644 gt 064
  • Docker 组成和主机名

    我有一个包含 2 个名为 web 和 db 的服务 容器 的撰写文件 version 2 services web image nodejs latest ports 80 db image mysql latest ports 3306
  • is_null($var) 和 ($var === null) 有什么区别?

    这之间有什么区别吗 if is null var do something 和这个 if var null do something 检查变量是否包含 null 时哪种形式更好 有什么我应该注意的边缘情况吗 我初始化了所有变量 因此不存在的
  • 将模块导入 Pyscript

    当我们编写 Python 代码时 我们通常使用导入的包和模块 例如 我们在编码时可能会这样写 import numpy import requests from bs4 import BeautifulSoup 当我们尝试将 python
  • 在 git 中,如何仅从更改的行中删除 Windows 行结尾?

    有时 当我尝试向开源项目贡献代码时 该项目尚未格式化并且包含 UNIX 和 Window 行结尾 我的 智能 IDE 会以某种方式检测每个文件使用哪种类型的结尾 如果它检测到 Windows 行结尾 那么我的所有更改都将具有 Windows
  • 更改 Sysem.Variants.VarToWideStr 的区域设置格式

    我的应用程序上的第三方组件 FastReports 广泛使用 System Variants VarToWideStr 函数 这很好 只是它忽略了我需要该应用程序使用的区域设置 Example FormatSettings ShortDat
  • Spark 跨接收器的结构化流一致性

    我想在以下情况下更好地理解 Spark 2 2 结构化流的一致性模型 一个来源 Kinesis 从此源向 2 个不同接收器进行 2 次查询 一个用于存档目的的文件接收器 S3 另一个用于处理数据的接收器 数据库或文件 尚未决定 我想了解跨接
  • 覆盖 django 的模型相关管理器

    我如何才能超越关系经理 例如 user entry set django db models fields related RelatedManager 但我需要自己的经理 我尝试这段代码 但这不起作用 class EntryManager
  • 为什么 QObject ::findChildren 返回具有公共基类的子级?

    我使用 QObject 作为复合模式的基类 假设我有一个父类 File 在一个人为的示例中 我向其中添加不同类型的子类 HeaderSection 和 PageSection File HeaderSection 和 PageSection
  • 简单表达式缺少参数类型

    遵循播放 websocket 示例 http www playframework com documentation 2 3 x ScalaWebSockets我遇到了一个奇怪的问题 文档中的以下示例正在运行 Future successf