- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(我正在使用 Scala nightlies,并在 2.8.0b1 RC4 中看到相同的行为。我是 Scala 新手。)
我有两个 SortedMap
s,我想组建工会。这是我想使用的代码:
import scala.collection._
object ViewBoundExample {
class X
def combine[Y](a: SortedMap[X, Y], b: SortedMap[X, Y]): SortedMap[X, Y] = {
a ++ b
}
implicit def orderedX(x: X): Ordered[X] = new Ordered[X] { def compare(that: X) = 0 }
}
X
s 可以转换为
Ordered[X]
s,然后组合
SortedMap
是有意义的换成另一个
SortedMap
,而不仅仅是一张 map 。
sieversii:scala-2.8.0.Beta1-RC4 scott$ bin/scalac -versionScala compiler version
2.8.0.Beta1-RC4 -- Copyright 2002-2010, LAMP/EPFL
sieversii:scala-2.8.0.Beta1-RC4 scott$ bin/scalac ViewBoundExample.scala
ViewBoundExample.scala:8: error: type arguments [ViewBoundExample.X] do not
conform to method ordered's type parameter bounds [A <: scala.math.Ordered[A]]
a ++ b
^
one error found
[A <% scala.math.Ordered[A]]
,我的问题似乎会消失。 ,而不是
[A <: scala.math.Ordered[A]]
.不幸的是,我什至无法弄清楚“有序”方法的位置!任何人都可以帮我追踪它吗?
SortedMap
的联合?年代?如果我删除 combine 的返回类型(或将其更改为
Map
)一切正常 --- 但是我不能依赖返回被排序!
最佳答案
目前,您使用的是 scala.collection.SortedMap
特征,其 ++
方法继承自 MapLike
特征。因此,您会看到以下行为:
scala> import scala.collection.SortedMap
import scala.collection.SortedMap
scala> val a = SortedMap(1->2, 3->4)
a: scala.collection.SortedMap[Int,Int] = Map(1 -> 2, 3 -> 4)
scala> val b = SortedMap(2->3, 4->5)
b: scala.collection.SortedMap[Int,Int] = Map(2 -> 3, 4 -> 5)
scala> a ++ b
res0: scala.collection.Map[Int,Int] = Map(1 -> 2, 2 -> 3, 3 -> 4, 4 -> 5)
scala> b ++ a
res1: scala.collection.Map[Int,Int] = Map(1 -> 2, 2 -> 3, 3 -> 4, 4 -> 5)
++
的返回结果的类型是
Map[Int, Int]
,因为这将是
++
对象的
MapLike
方法返回的唯一类型。似乎
++
保留了
SortedMap
的 sorted 属性,我猜这是因为
++
使用抽象方法进行连接,并且这些抽象方法被定义为保持映射的顺序。
scala.collection.immutable.SortedMap
。
scala> import scala.collection.immutable.SortedMap
import scala.collection.immutable.SortedMap
scala> val a = SortedMap(1->2, 3->4)
a: scala.collection.immutable.SortedMap[Int,Int] = Map(1 -> 2, 3 -> 4)
scala> val b = SortedMap(2->3, 4->5)
b: scala.collection.immutable.SortedMap[Int,Int] = Map(2 -> 3, 4 -> 5)
scala> a ++ b
res2: scala.collection.immutable.SortedMap[Int,Int] = Map(1 -> 2, 2 -> 3, 3 -> 4, 4 -> 5)
scala> b ++ a
res3: scala.collection.immutable.SortedMap[Int,Int] = Map(1 -> 2, 2 -> 3, 3 -> 4, 4 -> 5)
SortedMap
特征的实现声明了一个
++
方法,该方法返回一个
SortedMap
。
Ordered[T]
是一个特征,如果混合在一个类中,它指定可以使用 <
、 >
、 =
、 >=
、 <=
比较该类。你只需要定义抽象方法 compare(that: T)
,它返回 -1
为 this < that
, 1
为 this > that
和 0
为 this == that
。然后根据 compare
的结果在 trait 中实现所有其他方法。 T <% U
表示在 Scala 中绑定(bind)的 View 。这意味着 T
类型要么是 U
的子类型,要么可以通过范围内的隐式转换隐式转换为 U
。如果您放置 <%
但不使用 <:
,则代码有效,因为 X
不是 Ordered[X]
的子类型,但可以使用 Ordered[X]
隐式转换隐式转换为 OrderedX
。 scala.collection.immutable.SortedMap
,那么您仍在对接口(interface)而不是实现进行编程,因为不可变的
SortedMap
被定义为
trait
。您可以将其视为
scala.collection.SortedMap
的更特殊的特征,它提供额外的操作(如
++
返回
SortedMap
)和不可变的属性。这符合 Scala 哲学——更喜欢不变性——因此我认为使用不可变
SortedMap
没有任何问题。在这种情况下,您可以保证结果肯定会排序,并且由于集合是不可变的,因此无法更改。
scala.collection.SortedMap
不提供
++
方法,结果女巫返回
SortedMap
。我所做的所有有限测试似乎表明,两个
scala.collection.SortedMap
的串联结果确实产生了一个保留排序属性的映射。
关于scala - 如何形成 scala SortedMaps 的联合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1938038/
我正在阅读 deduction guides在 C++17 中。假设我们有以下示例: template struct Custom { }; template struct Person {
我在我的 xamarin 表单项目中使用选项卡式页面。我正在尝试在 Android 的 MyTabsRenderer 类中使用 OnTabReselected 事件。但不会调用 OnTabSelect
我对 NSPredicate 有疑问。想不出一种写法,也找不到类似的东西。我有这个谓词: [NSPredicate predicateWithFormat:@"followedBy.username
我的模态中有一个小表单,如下所示: Name
我正在尝试制作用于表单验证的 jquery 插件(用于学习)。在此表单中,我无法获取类名称为“required”的所有表单字段。代码如下: (function( $ ) { $.fn.kValidat
在我的 Android 应用中,我从 Google Place API 获取附近餐馆的列表。 但不幸的是,这个列表没有给出餐厅的菜单。 我有 T_RESTAURANT 和 T_MENU 表。 假设我在
我正在尝试使用 angular.js 和 devise 设置登录。 这是我的表单 html: Email Password
谁能告诉我如何让生成的文档从表单中提取数据并将其作为标题?我已经查看了 Google Script 文档,但到目前为止我还没有找到任何可以回答我或向我展示类似示例的内容。到目前为止,我在这里找到了相关
当我有这样的表格时: “.”是什么意思?在行动中代表什么? 最佳答案 action 属性告诉表单将表单数据发布到哪里。 . 代表当前目录,所以我会说这是发布到当前目录中的默认文档。 相对路径有几
Mockito 似乎是一个非常漂亮的 Java stub /模拟框架。唯一的问题是我找不到任何关于使用他们的 API 的最佳方式的具体文档。测试中常用的方法包括: doXXX(???) : Stubb
我有 2 份表格。我从一种形式创建并展示了另一种形式。效果很好。但是,当我尝试从创建该表单的表单中关闭或处理该表单时,出现以下异常: Exception : Value Dispose() can
将我的应用程序上传到 TestFlight 时出现以下错误。 但是,我没有看到 missing 的任何位置Xamarin Assets 菜单中的图标。 (76x76、167x167 和 152x152
我的models.py文件看起来像这样 from django.db import models from django.template.defaultfilters import slugify
问题 学习 Xamarin 大学类(class) XAM120 .在将我的 IDial 实现添加到我的 UWP 项目时遇到障碍。出于某种原因,我的项目没有在我的系统上使用 PhoneCallManag
我在应用程序的列表页面上使用了 FloatingActionButton,我还想添加一个 searchBar。但我无法向他们展示该页面。我的代码和屏幕截图已关闭。如何显示搜索栏? FAB Github
实体产品和类别之间存在经典的多对多关系,其中一个产品可能包含在多个类别中。我们想在 UI 中使用带有 UITableViewController 或 UICollectionView 的 NSFetc
html 代码: js代码: function show(){ $.ajax({
我有一个用户列表。现在任何一个名字很长的用户都在搞乱排列/排列。 我认为通过为名称设置大小可以达到目的: .invitee .name{ height: 50px; width: 115px;
我正在使用 Flask 框架和 WTforms 库,我在更改选择字段中每个选项的颜色时遇到了问题,因为它总是显示为黑色而不是红色 我在模板中有下一个表单
Dugen Chen 写了一篇有用的文章,介绍如何将 HTML5 验证中的“required”属性添加到 Django 表单字段。 http://duganchen.ca/elegantly-addi
我是一名优秀的程序员,十分优秀!