前向引用扩展了价值问题的定义

2023-12-26

我在 scala 中遇到一些问题来解析隐式值,并且在 netbeans 中出现了神秘的错误消息:

“错误:前向引用超出了值的定义......”

或者在 scala 控制台中我有其他错误消息

“类型不匹配:29:错误:类型不匹配;发现:Factory.type(具有底层类型对象工厂)所需:通用工厂”

我的类和主要功能的一些描述:

import java.util.Random

//////////
// Main //

//Implicit random for all classes and object
implicit val aprng = new Random

//Implicit object Factory used in other class
implicit val factory = Factory

abstract class GenericFactory {
def build 
}

object Factory extends GenericFactory{
def build = println("return factory")
}

class A (rate: Random => Double = aprng => aprng.nextFloat, val factory : GenericFactory) {

  def this(rate : Double, factory : GenericFactory) = this( _ => rate, factory)

  def operate(genomes: IndexedSeq[Int])(implicit aprng: Random) = { 
println("calculate genomes with aprng random values")}
}

object B{
val instanceOfA = new A(rate => 0.5d,factory)
}

我有两个问题,因为1)我可以在类A的参数中传递一个对象,所以我定义了一个抽象类来传递这个抽象类,但这在这里不起作用:/ 2) 之后,我在 A 类中定义的隐式值无法被识别,并且失败并显示错误消息。

您有解决这个问题的想法或答案吗?

Edit 1

我在 agisteel 的帮助下更新了代码,没问题,代码正在运行:)

import java.util.Random

//////////
// Main //

//Implicit random for all classes and object
implicit val aprng = new Random
implicit val function: Random => Double = arpng => arpng.nextFloat

abstract class GenericFactory 
{
  def build = println("build")
}

implicit object Factory extends GenericFactory
{
  def build = println("return factory")
}

class A (implicit rate: Random => Double, implicit val factory : GenericFactory) {

  //def this(rate : Double, factory : GenericFactory) = this( _ => rate, factory)

  def operate(genomes: IndexedSeq[Int])(implicit aprng: Random) = { 
    println("calculate genomes with aprng random values")}
}

object B{
val instanceOfA = new A
}

我不确定您想在这里实现什么目标,但这里有一些提示:

1)代替:

implicit val factory = Factory
object Factory extends GenericFactory { ...

尝试这个:

implicit object Factory extends GenericFactory { ...

2) 据我所知,lambda 的默认值只能通过隐式提供,所以不要:

class A (rate: Random => Double = aprng => aprng.nextFloat, ...

尝试这个:

implicit val function: Random => Double = arpng => arpng.nextFloat
class A (implicit rate: Random => Double) ( ...

我希望这些信息有用。

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

前向引用扩展了价值问题的定义 的相关文章

  • Javascript:一般访问函数参数

    这是我所拥有的 var log function arg1 arg2 console log inside arg1 arg2 var wrap function fn return function args console log be
  • 了解如何使用 apply 和 unappy

    我试图更好地理解 的正确用法apply and unapply方法 考虑到我们想要序列化和反序列化的对象 这是正确的用法吗 即斯卡拉方式 的使用apply and unapply case class Foo object Foo appl
  • 哪些 ORM 与 Scala 配合得很好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 自定义 NIO 文件系统无法通过 SBT 的测试任务加载

    为了进行测试 我使用内存中的 NIOFileSystem执行 memoryfs https github com openCage memoryfs 我以前已经利用过它 并且它似乎运行良好 例如梅文 然而 现在 在SBT项目中 不可能初始化
  • 在另一个类中使用一个类对象?

    我正在用 c 制作应用程序 在该应用程序中 我有一个类DataCapture cs 在同一个应用程序中 我有另一个类Listner cs 在 Listner cs 类中 我想使用以下对象DataCapture cs不创建新对象DataCap
  • 对于空列表,max() 应该返回什么?

    Got java util NoSuchElementException head of empty list所以我试着检查一下 但现在我明白了 info max of a few numbers FAILED info 0 did not
  • 了解 Scala 中的中缀方法调用和缺点运算符(::)

    我对 Scala 编程语言相当陌生 当我遵循以下网站的讲义时 我正在尝试一些萦绕在我脑海中的东西 here http horstmann com sjsu cs152 04 closures1 html 我想我无法真正理解 cons 运算符
  • 使用原始类型模拟案例类

    考虑以下类型结构 trait HasId T def id T case class Entity id Long extends HasId Long 比方说 我们想在一些测试中模拟实体类 val entityMock mock Enti
  • 在Python中将字典转换为以键作为对象名称的对象

    我有一本这样的字典 d item1 Hi 150 495 item2 Hola 590 40 我想将其转换为对象 如果可能的话递归地 我有一堂课 class Item def init self thetuple self greeting
  • Scala 如何忽略 Java 的检查异常?

    例如如果调用 JavaThread sleep这会抛出一个已检查的InterruptedException来自 Scala 源文件 然后不需要将调用包含在 Scala 中try catch Scala 如何删除将调用包围在 a 中的规则tr
  • 如何捕获 Oozie Spark 输出

    有没有办法捕获spark的输出然后将其输入到shell上 我们当前正在使用 scala 创建 jar 文件 并希望我们的 Spark 输出成为 shell 输入 我的想法是使用 wf actionData spark XXXX var 我只
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • 使用 Spark DataFrame 获取组后所有组的 TopN

    我有一个 Spark SQL DataFrame user1 item1 rating1 user1 item2 rating2 user1 item3 rating3 user2 item1 rating4 如何按用户分组然后返回TopN
  • Play Framework 2.3 (Scala) 中的自定义 JSON 验证约束

    我设法使用自定义约束实现表单验证 但现在我想对 JSON 数据执行相同的操作 如何将自定义验证规则应用于 JSON 解析器 示例 客户端的 POST 请求包含用户名 username 我不仅要确保该参数是非空文本 而且还要确保该用户确实存在
  • Scala Tuple2Zipped 与 IterableLike zip

    两种实现有什么区别 这个比那个好吗 有一篇博客文章说 Tuple2Zipped 性能更好 但没有提供原因 并且查看源代码我没有看到差异 val l1 List 1 2 3 val l2 List 5 6 7 val v1 l1 zip l2
  • 对 Scala Not Null 特征的库支持

    Notice 从 Scala 2 11 开始 NotNull已弃用 据我了解 如果您希望引用类型不可为空 则必须混合魔法NotNull特征 编译器会自动阻止你输入null 可以值在里面 看到这个邮件列表线程 http www nabble
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • Scala 解析器组合器的运算符优先级

    我正在研究需要考虑运算符优先级的解析逻辑 我的需求并不太复杂 首先 我需要乘法和除法比加法和减法具有更高的优先级 例如 1 2 3 应视为 1 2 3 这是一个简单的例子 但你明白了 我需要将更多自定义标记添加到优先级逻辑中 我可以根据此处
  • 在 Scala 中,使用“_”和使用命名标识符有什么区别?

    为什么当我尝试使用时会出现错误 而不是使用命名标识符 scala gt res0 res25 List Int List 1 2 3 4 5 scala gt res0 map gt item toString

随机推荐

  • 修改多维 numpy 数组中的对角线

    我有一个形状为 7 3 7 3 的多维 numpy 数组 我想修改轴 0 和轴 2 重合的广义对角线 这个广义对角线将被定义为数组中第 0 个和第 2 个索引重合的元素 并且形状为 3 3 7 Doing arr diagonal axis
  • 在 Vbscript 中终止进程

    我试图终止名为 AetherBS exe 的进程的所有实例 但以下 VBscript 不起作用 我不太确定在哪里 为什么会失败 那么我怎样才能杀死 AetherBS exe 的所有进程呢 CloseAPP AetherBS exe Func
  • Boost.Spirit 将表达式转换为 AST

    使用 Boost Spirit 将某些表达式转换为 AST 的正确方法是什么 我尝试构建它 但我认为它很混乱 可以简化很多 https godbolt org z VXHXLY https godbolt org z VXHXLY incl
  • 调试非托管 Neo4j 扩展

    我刚刚开始使用 Graphaware 框架为 Neo4j 服务器开发一个非托管扩展 到目前为止一切都很好 甚至单元测试也有效 但我想实际调试从 Intellij 内部运行 Neo4j 服务器的扩展 有人能给我一个关于如何做到这一点的提示吗
  • Spring Batch 多数据源和 ChainedTransactionManager 风险

    我正在研究由两个数据源组成的 Spring Batch 的可行性 用于 Spring Batch 元数据的 SQL 数据源和用于业务数据的 MongoDB 数据源 具有事务性用途 交易方面在这里提出了几个问题 以下主题 使用 MongoDB
  • 让 Django 走向绿色

    我有一个 Django 管理命令 可以发出数千个 TCP UDP 请求 我使用 Gevent 来加快速度 因为我重组了代码以作为协程工作 套接字连接不再阻塞 但从我读到的内容来看 Django 的某些部分仍然不是绿色的 我所说的绿色 是指使
  • 如何使用 JSTL 在 JSF 1.2 页面中强制构建阶段?

    我在 JSF 应用程序中使用 JSTL 标签 通过某些操作 我需要重建组件树 就像它是初始构建一样 我当前的症状是对象与组件关联不正确 重复的 ID 以及陈旧组件的其他问题 这是使用在构建阶段使用的 c foreach 不能使用重复标记 请
  • 我们如何确定我们使用的是 Web API 1 还是 Web API 2?

    介绍一下问题 我想知道我们使用的是Web API 1还是2 我自己的packages config指示版本5 0 0 这是 Web API 1 还是 2 搜索和研究 我尝试过谷歌搜索以下内容 网络 API 1 网络 API 2 and AS
  • Rhino 中没有 Array.filter() 吗?

    为什么我不能使用Array filter 在犀牛 代码是这样的 var simple reason a b c print typeof simple reason filter var not so simple reason new A
  • WinForms:无需使用 FormWindowState.Normal 即可查找最小化表单的大小

    有没有一种简单的方法可以确定 WindowState Normal 中窗体的大小 而无需实际更改窗体状态 这是我现在所做的 C 代码 public class MyForm Form public void MyMethod FormWin
  • VB.NET 将 Tab 键发送到另一个应用程序窗口

    我想将 TAB 键发送到另一个应用程序window 将密钥发送到窗口而不是文本框 I tried SendMessage hWnd WM SETHOTKEY VK TAB 0 什么都没发生 我的目标是 将 Tab 键发送到我的应用程序Or当
  • 使用带有 CommaDelimitedList 参数的 Cloudformation Join 函数来构建 IAM ARN

    我一直在尝试构建一个存储桶策略 以允许对 CloudFormation 中的集中帐户执行操作到共享相同模式的一系列其他帐户中的 IAM 角色 即 arn aws iam 111111111111 role my role arn aws i
  • Golang:如何将字符串转换为二进制表示形式

    在golang中 如何将字符串转换为二进制字符串 示例 CC 变为 10000111000011 这是一个简单的方法 func stringToBin s string binString string for c range s binS
  • 如何编写返回插值的函数(pandas 数据帧)?

    我有一个作为 pandas 数据框导入的 xls 文件 它具有 NaN 值 如何设置一个函数 用相邻值之间的插值替换 NaN 我不能使用 pd DataFrame interpolate 或任何现有的插值函数 因为我应该创建自己的函数 这是
  • 如何使用 Quartz.net 2.0 安排任务?

    我正在尝试在 ASP NET MVC 4 应用程序中使用 Quartz net 2 0 安排任务 但无法执行该任务 这是代码 public class ScheduleTaskConfig public static void StartS
  • 使用 WinAPI 创建具有透明背景的文本标签

    是否可以仅使用 WinAPI 命令在窗口中创建具有透明背景的标签 我正在尝试将图像添加到对话框窗口中 该窗口将用作背景图像 然后在该图像上显示文本 到目前为止 我尝试过的所有内容都显示背景图像顶部的文本标签 并在其周围绘制了灰色矩形 这是迄
  • 体验(XP)不适用于所有用户 JSON Discord.PY

    我试图为在大约有 50 60 人打字的房间中输入的消息评分 它会第一次将用户添加到 JSON 文件 但不会为他们键入的消息添加任何更多点 我再次测试 只有一名用户因输入的消息而获得积分 其余的保持不变 这是代码 client event a
  • C++ 计算相同运行进程的总数

    我正在寻找一种方法来检测具有相同进程名称的正在运行的进程的数量 例如 我运行记事本三遍 记事本程序 记事本程序 记事本程序 所以它会返回3 我目前有这些代码来检测正在运行的进程 但不计算其正在运行的进程数量 include
  • 在本地主机上启用 SharedArrayBuffer

    尝试运行 ffmpeg wasm 时 我不断收到 SharedArrayBuffer 未定义 错误 看来这是在 Web assembly 方面 无论如何 我知道这是一个可以通过跨源隔离来克服的问题 但是 我试图在本地主机上运行它 据我了解
  • 前向引用扩展了价值问题的定义

    我在 scala 中遇到一些问题来解析隐式值 并且在 netbeans 中出现了神秘的错误消息 错误 前向引用超出了值的定义 或者在 scala 控制台中我有其他错误消息 类型不匹配 29 错误 类型不匹配 发现 Factory type