计算点之间的距离

2024-02-06

我正在尝试使用 Scala 类计算两点之间的距离。但它给出了一个错误说

类型不匹配;找到:other.type(具有基础类型 Point) required: ?{def x: ?} 请注意,隐式转换不是 适用,因为它们不明确:两种方法any2Ensuring 类型为 [A](x: A)Ensuring[A] 的对象 Predef 和方法 any2ArrowAssoc 在类型 [A](x: A)ArrowAssoc[A] 的对象 Predef 中是可能的 从 other.type 到 ?{def x: ?} 的转换函数

class Point(x: Double, y: Double) {
  override def toString = "(" + x + "," + y + ")"


  def distance(other: Point): Double = {
    sqrt((this.x - other.x)^2 + (this.y-other.y)^2 )
  }
}

以下内容对我来说编译得很好:

import math.{ sqrt, pow }

class Point(val x: Double, val y: Double) {
  override def toString = s"($x,$y)"

  def distance(other: Point): Double =
    sqrt(pow(x - other.x, 2) + pow(y - other.y, 2))
}

我还想指出的是,您的Point相反,作为案例类更有意义:

case class Point(x: Double, y: Double) { // `val` not needed
  def distance(other: Point): Double =
    sqrt(pow(x - other.x, 2) + pow(y - other.y, 2))
}

val pt1 = Point(1.1, 2.2) // no 'new' needed
println(pt1)  // prints Point(1.1,2,2); toString is auto-generated
val pt2 = Point(1.1, 2.2)
println(pt1 == pt2) // == comes free
pt1.copy(y = 9.9) // returns a new and altered copy of pt1 without modifying pt1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算点之间的距离 的相关文章

随机推荐

  • 为什么 selectOneMenu 将 ItemLabel 发送到转换器?

    我的 JSF 页面
  • 为什么我在尝试打印时收到 AttributeError

    我正在按照本教程学习 urllib2http docs python org howto urllib2 html urlerror http docs python org howto urllib2 html urlerror运行下面的
  • 使用 Swift Package Manager 时如何生成用于开发的 Xcode 项目文件

    我正在使用新的开源 Swift Package Manager 并且能够下载文件 我希望管理器根据它检索到的包创建一个 开发环境 通过 Xcode 有人处理过这个吗 更新 正如其他答案中提到的 您现在可以使用以下命令生成 Xcode 项目文
  • 获取 Chrome 扩展程序读取复制文本的权限

    我正在创建一个 Chrome 扩展程序 我希望能够看到用户从 Chrome 复制到剪贴板的内容 这是我目前在内容脚本中所做的工作 document addEventListener copy gt navigator clipboard r
  • 从 groupby 函数中选择组

    我的数据框 df1 group ordercode quantity 0 A 1 B 3 1 C 1 E 2 D 1 我通过以下方式组建了每个小组groupby功能 我需要使用组号提取数据 我想要的输出 在 获取组0 出去 ordercod
  • 将会员资格提供程序和 dbcontext 包装在单个事务上

    使用 EF 5 代码优先和 NET 4 5 的 MVC 项目 我一直在寻找一种将 dbContext 和 SimpleMembershipProvider 包装在单个事务上的方法 我尝试使用 TransactionScope 但由于会员资格
  • 将change、mouseup、mousedown、mouseout、keyup和keydown合并为一个函数

    我拥有的 我有一个文本框 它假定在相应的选择框中选择的任何选项的值 我对 on Change mouseup mousedown mouseout keyup 和 keydown 事件重复完全相同的函数 我需要的 是否可以将上述功能合并为一
  • Java - 动态更改日志记录级别

    我希望能够告诉 JVM 在执行链中的某个时刻停止记录特定级别的消息 在某些时候 我只想记录消息SEVERE水平 所以我正在考虑这样做 for Enumeration
  • 显示高度 100%:IE 中的表格单元格

    我希望在 div 下有一个带有 display table cell 的子元素 占据父 div 的整个高度 有谁知道为什么下面的代码片段在 Chrome 和 FF 中工作得很好 但在 IE 包括 10 下却崩溃了 HTML div clas
  • (数字)和(-数字)的含义

    是什么意思 number number 我已经搜索过但无法找到其含义 我想用i i 在 for 循环中 如 for i 0 i lt n i i i 假设 2 的补码 或者i未签名 i等于 i 1 i i 1 是提取最低设置位的技巧i 它之
  • qPython - kdb响应数据的类型转换

    当我使用 qPython 运行 q 查询时 我能够返回 pandas 数据框中的数据 我正在努力解决的是 字符串 列的类型 即在 q 中以简单或混合 字符 列表形式呈现的列 它们的数据类型是 object 值以 b ab34knadke 的
  • 发现蓝牙设备IOError:RPC服务器不可用

    我只是尝试在 PyCharm 中使用 Python 实现蓝牙PyBluez http karulis github io pybluez 我陷入了这个特殊的错误 我试图搜索这个错误 但找不到它 有人可以帮忙吗 这是我的代码 gt gt gt
  • 使用 Facebook (PHP SDK) 和 Codeigniter 进行身份验证

    好吧 这几天我一直在尝试将 Facebook 身份验证集成到我基于 Codeigniter 的网站中 我已将 Facebook PHP SDK 作为一个库包含在内 并且似乎连接得很好 但是当我在 SDK 中使用 getUser 方法时 会返
  • 如何拥有一个显示不同uitableview建议的搜索栏

    我想在导航栏上有一个搜索栏 当用户开始输入时 显示一些建议 但另外 uitableview 必须与搜索结果不同 例如 用户开始输入 wh 然后显示一个包含white wheater who 的列表 然后 当按下搜索按钮时 会显示其他列表和结
  • Safari 浏览器的媒体查询

    我希望媒体仅在 1280 像素屏幕的 Safari 上运行 这适用于所有浏览器 但我只想要 safari media screen and width 1280px Try this Webkit Chrome 和 Safari 任何版本
  • Android 人脸检测仅适用于绘图,不适用于 SD 卡中的图像

    所以我有代码可以在任何给定的图像文件中检测最多 10 张面孔 并向我返回信息 例如眼睛的位置和其他类似信息 因此 当我告诉它使用存储在我的项目资源的可绘制文件夹中的图像文件时 它效果很好 但是当我尝试从 SD 卡导入的位图中查找面孔时 它不
  • 高分自包含在 .xap 中

    想知道这是否可能 我正在为一个有趣的办公项目制作一个小游戏 并且需要有一个高分表 该表独立于实际的 Silverligth xap 中 有办法做到这一点吗 不 不是 您可以将表存储为数据 即在 XML 文件中 但您无法修改该文件并在 XAP
  • 无法一次选择一个单选按钮

    我无法一次选择一个单选按钮 多个按钮被选中 我是 html 新手 这是我的代码 请帮忙
  • ColdFusion 从文本文件中提取值

    技术细节 我想从包含参数名称和值的文本文件中提取值 对于以 request config 开头的每一行 有空行 带注释的行等 我不想从中提取任何内容 我想提取这些值 以粗体显示 请求 配置 我的参数1 一些随机字符串 我认为最好的方法可能是
  • 计算点之间的距离

    我正在尝试使用 Scala 类计算两点之间的距离 但它给出了一个错误说 类型不匹配 找到 other type 具有基础类型 Point required def x 请注意 隐式转换不是 适用 因为它们不明确 两种方法any2Ensuri