是否可以在 Scala 解释器中定义伴随类/模块?

2023-12-29

在 Scala 解释器中进行测试通常很方便。然而,我遇到的一个问题是,我必须重构使用隐式转换的代码,因为定义一个与现有类同名的对象does not使其成为 REPL 中的配套模块。因此,当我翻译回“真实源代码”时,我不能确信我的代码仍然可以工作。

有没有办法在 REPL 中定义同伴?也许类似于

bigblock {
   class A

   object A {
      implicit def strToA(s: String): A = // ... 
   }
}

这样

val v: A = "apple"

将编译。


那很接近:

object ABlock {
   class A

   object A {
      implicit def strToA(s: String): A = // ... 
   }
}
import ABlock._

或者,如果将所有内容放在一行中,则为以下内容:

class A; object A { implicit def strToA(s: String): A = // ... } }

...尽管无论哪种方式,您仍然需要导入隐式转换才能按照您的要求进行以下工作:

import ABlock.A.strToA  // for the form with the enclosing object
import A.strToA         // for the one-line form without an enclosing object
val v: A = "apple"

您需要这样做的原因是,您在 REPL 中输入的每一行都包含在一个对象中,并且后续的每个行都嵌套在前一个行中。这样做是为了让您可以执行以下操作而不会出现重新定义错误:

val a = 5
val a = "five"

(实际上,第二个定义a这里遮蔽了第一个。)

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

是否可以在 Scala 解释器中定义伴随类/模块? 的相关文章

  • 如何在Dotty中使用given?

    我在看Dotty下的文档Contextual Abstractions页面 我看到了Given Instances 给定实例 或者简单地 给定 定义了 规范 值 用于合成给定子句的参数的某些类型 例子 trait Ord T def com
  • Liftweb 环境中的后台任务

    我必须编写守护进程 并且我想使用模型来连接到数据库和一些有用的 Lift 类 是否可以运行 Rails 的 rake 任务的模拟 Scala 社区组上也有类似的问题 答案是使用Actors来做后台处理
  • Scala:在运行时获取 mixin 接口

    我需要在运行时从给定的类获取所有接口 全部加载在类加载器中 例如 如果一个类是这样声明的 trait B trait C trait D class A extends B with C with D 我想在运行时获取这些信息 A 取决于
  • 新式(“内联”)宏需要 scala.meta

    我刚刚更新到 scala meta 2 0 0 M1 和最新的 scala 2 12 3 现在宏不再编译 我所做的唯一更改是将元版本从 1 8 0 更改为 2 0 0 M1 错误 新式 内联 宏需要 scala meta 有谁知道是否有快速
  • 逆变方法参数类型

    wiki 逆变方法参数类型 https en wikipedia org wiki Covariance and contravariance 28computer science 29 Contravariant method argum
  • 使用原始类型模拟案例类

    考虑以下类型结构 trait HasId T def id T case class Entity id Long extends HasId Long 比方说 我们想在一些测试中模拟实体类 val entityMock mock Enti
  • 如何从 SparkSQL DataFrame 中的 MapType 列获取键和值

    我的镶木地板文件中有数据 该文件有 2 个字段 object id String and alpha Map lt gt 它被读入 SparkSQL 中的数据帧 其架构如下所示 scala gt alphaDF printSchema ro
  • Scala:类似 Option (Some, None) 但具有三种状态:Some、None、Unknown

    我需要返回值 当有人询问值时 告诉他们以下三件事之一 这是值 没有价值 我们没有关于该值的信息 未知 情况 2 与情况 3 略有不同 示例 val radio car radioType 我们知道该值 返回无线电类型 例如 pioneer
  • 如何在 Scala 中打印任何内容的列表?

    目前我有一个打印整数的方法 def printList args List Int Unit args foreach println 我如何修改它 使其足够灵活 可以打印任何内容的列表 您不需要专用的方法 所需的功能已经在集合类中 pri
  • 对 Scala Not Null 特征的库支持

    Notice 从 Scala 2 11 开始 NotNull已弃用 据我了解 如果您希望引用类型不可为空 则必须混合魔法NotNull特征 编译器会自动阻止你输入null 可以值在里面 看到这个邮件列表线程 http www nabble
  • 类型级编程有哪些示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白 类型级编程 是什么意思 也无法使用Google找到合适的解释 有人可以提供一个演示类型级编程的示例吗 范式的解释和 或定义将
  • Scala 解析器组合器的运算符优先级

    我正在研究需要考虑运算符优先级的解析逻辑 我的需求并不太复杂 首先 我需要乘法和除法比加法和减法具有更高的优先级 例如 1 2 3 应视为 1 2 3 这是一个简单的例子 但你明白了 我需要将更多自定义标记添加到优先级逻辑中 我可以根据此处
  • 分析 sbt 构建

    我的 sbt 构建需要很长时间 它又大又复杂 很难知道从哪里开始清理 看起来 sbt 保留了很多关于构建结构的元数据 包括相互依赖关系 命名任务 范围界定等 有了所有这些元数据 似乎很容易跳入并测量每个不同任务 及其范围 花费的时间 在代码
  • 在 Scala 中,使用“_”和使用命名标识符有什么区别?

    为什么当我尝试使用时会出现错误 而不是使用命名标识符 scala gt res0 res25 List Int List 1 2 3 4 5 scala gt res0 map gt item toString
  • 如何在 apache Spark 作业中执行阻塞 IO?

    如果当我遍历 RDD 时 我需要通过调用外部 阻塞 服务来计算数据集中的值怎么办 您认为如何才能实现这一目标 值 Future RDD Double Future sequence tasks 我尝试创建一个 Futures 列表 但由于
  • Akka 2 中的调度程序有哪些差异和使用模式?

    我很难理解它们的差异和推荐用法Akka 2 中的调度程序 http doc akka io docs akka current scala dispatchers html 我想我明白了平衡调度程序 http doc akka io api
  • 如何在 Spark Dataframe 中显示完整的列内容?

    我正在使用 Spark csv 将数据加载到 DataFrame 中 我想做一个简单的查询并显示内容 val df sqlContext read format com databricks spark csv option header
  • 向 Scala Swing Panel 添加标签时出现类型不匹配错误

    我有这个课程扩展FlowPanel我正在尝试向其中添加标签 import java awt Label Color import scala swing import scala util Random class MyPanel exte
  • Akka Streams / HTTP:从响应中获取原始请求

    我有一个 Akka Streams 源 它会遍历流程并发布 HTTP 请求 source map toRequest via Http outgoingConnection host map toMessage 假设toRequest方法将
  • scala中的协变类型参数需要在java接口中保持不变

    我有一个看起来像这样的特征 一些进一步的信息可以在我自己提出了这个相关问题 https stackoverflow com questions 3695990 inheritance and automatic type conversio

随机推荐

  • 在 Xcode 的“帐户”选项卡中刷新后,配置文件会失效

    不幸的是 这里陷入了令人沮丧的循环 这个问题大约一个月前在 Xcode 5 中开始出现 我一直在处理它 希望它会在 Xcode 6 中消失 但我仍然看到它发生在当前 App store 版本的 Xcode 6 中 当访问 Xcode 中的
  • 为什么会收到错误“‘Observable’类型上不存在属性‘map’”?

    这是一个在 Intellij15 上运行 typescript 的 angular2 项目 我已经导入了 rxjs add operator map 但仍然出现上述错误 这是我的代码 我已经检查过其他类似的问题 但没有找到解决方案 impo
  • Angular 7 api没有被调用

    我正在尝试调用 API 但我认为出了问题 import map from rxjs operators import Injectable from angular core import HttpClient from angular c
  • 要“新”还是不“新”

    使用时是否有可遵循的经验法则new声明对象时何时不使用关键字 List
  • ubuntu linux上的虚拟socat串口和c#

    出于测试目的 我尝试编写一个简单的程序来连接到使用 socat 创建的虚拟串行端口 我使用以下命令创建串行端口 socat d d PTY b9600 PTY link ttyVS1 b9600 得到这个输出 2011 11 08 18 2
  • 如何向 Visual Studio 2010 shell 添加 C# 语言支持?

    问候 我正在使用 Visual Web Developer Express 2010 进行一些开发 我还安装了 Visual Studio 2010 Shell 我用它来调试服务器和客户端代码 使用 调试 gt 附加到处理 命令 我的问题是
  • 无法使用 XPath 表达式定位 LABEL 的元素

    我正在尝试使用下面的 xpath 作为标签 但我无法找到该元素 driver findElement By xpath div label contains text Patient s Name isEnabled XPath id up
  • Openshift 上的 WordPress 响应速度非常慢

    我刚刚将我的 Wordpress 网站移至 OpenShift PAAS 生态系统上的可扩展 PHP 盒上 但我立即注意到该网站的响应速度非常慢 大约 3000 4000 毫秒 但是 当它开始响应时 页面加载 渲染速度绝对很快 这是网址 h
  • onclick 事件不适用于选项

    以下是我的代码 在 Firefox 中运行良好 但在 chrome 中则不行 请让我知道如何解决这个问题 主要思想是根据选择框的选定值调用js函数
  • 如何以编程方式确定我的应用程序正在 iPhone、iPad 或 iPhone 4 上运行?

    我刚刚使用 cocos2d 完成了我的 iPhone 游戏 但在将其发布到 AppStore 之前 我想让它在 iPad 屏幕更大 和 iPhone 4 分辨率更大 上运行 那么 我如何以编程方式确定我的应用程序正在 iPhone iPad
  • Rabbitmq:在无限循环中重新处理失败的消息

    这是我的rabbitmq配置
  • 如何在 ObservableCollection 上执行 foreach lambda 表达式?

    我如何执行foreachObservableCollection 上的 lambda 表达式 没有方法foreach与 ObservableCollection 一起使用 尽管此方法与 List 一起存在 有没有可用的扩展方法 BCL 中默
  • 惰性初始状态 - 它是什么以及如何使用它?

    我是新来反应 Hooks 的 我正在尝试利用useState在我的代码中 当我使用它时 我发现了一个术语 惰性初始状态 https reactjs org docs hooks reference html lazy initial sta
  • 质数 JavaScript

    有人可以指导我在这里获取素数吗 这是家庭作业 所以我不想要答案 但如果有一些指示 我将不胜感激 这真的让我很烦 我想我已经很接近了 但我遇到的问题是 25 和 35 这些不是素数 但这个函数正在返回它们 var getPrimeNumber
  • 在本机应用程序中使用 Webrtc

    我的问题是 1 是否可以在我的 Native App 中拥有一个 WebView 由 Native 框架提供 实例 并扩展它以支持 Webrtc 如果 1 为 是 则可能执行以下操作 1 在 Android 上构建 webrtc 2 在 A
  • Angular 2 和 Angularfire2 中的三向绑定

    我正在尝试使用 AngularFire 2 2 0 0 beta 2 将输入元素三路绑定到 Angular js 2 2 0 0 rc 4 中的 firebase 数据库 我有一个非常简单的 html 例如
  • 安装 ruby​​ 1.9.3 时遇到问题

    我通过命令安装了 ruby 1 9 3rvm install 1 9 3在 mac 的终端上 安装后我收到这些错误 见下文 有人有任何想法来解决这个问题吗 运行 configure prefix Users Keta rvm rubies
  • Flutter pdf 生成图像速度太慢

    我正在 flutter 中开发 pdf 生成器应用程序 但是当我想向 pdf 添加图像时 需要很长时间 我也想知道如何添加多个图像 我使用 3 个库 图像选择器 pdf 打印 这是我的代码 Future getImage async var
  • Caliburn Micro WPF 窗口管理

    我想使用 caliburn micro 启动一个 WPF 应用程序 这样我就可以尽可能地使用 TDD 我之前在 WP7 中使用过 caliburn micro 但 WPF 似乎是另一艘船 并且文档不完整与 WP7 一样 我已经用我的 Boo
  • 是否可以在 Scala 解释器中定义伴随类/模块?

    在 Scala 解释器中进行测试通常很方便 然而 我遇到的一个问题是 我必须重构使用隐式转换的代码 因为定义一个与现有类同名的对象does not使其成为 REPL 中的配套模块 因此 当我翻译回 真实源代码 时 我不能确信我的代码仍然可以