- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在玩 Scala By Example 开头的 QuickSort 示例并尝试将其调整为通用类型 A
,而不仅仅是 Int
s。
到目前为止我的工作是
def sort[A <: Ordered[A]](xs: Array[A])
sort
在所有反射排序的类型上运行,如
RichBoolean
.
A
它们延伸的地方
Ordered[B]
其中 B 是 A 的父类(super class)(例如,任何扩展
Ordered[Any]
的东西)。
case class X( i : Int ) extends Ordered[X] {
def compare( x : X ) = x.i - i
}
class Y( i : Int, j : Int ) extends X(i)
case class Z( i : Int ) extends Ordered[Any] {
def compare( a : Any ) : Int = {
if (! a.isInstanceOf[Z] )
sys.error("whoops")
val z = a.asInstanceOf[Z]
z.i - i
}
}
object QuickSort {
def main( args : Array[String] ) {
val xs = Array( 3, 1, 2, 4 ) map X
sort( xs );
val ys = Array( 3, 1, 2, 4 ) map { i => new Y(i, -i) }
sort[X,Y]( ys );
val zs = Array( 3, 1, 2, 4 ) map Z
sort[Any,Z]( zs );
}
def sort[B >: A, A <: Ordered[B]](xs: Array[A]) {
def swap(i: Int, j: Int) {
val t = xs(i); xs(i) = xs(j); xs(j) = t;
}
def sort1(l: Int, r: Int) {
val pivot = xs((l + r) / 2)
var i = 1; var j = r
while (i <= j) {
while (xs(i) < pivot) i += 1
while (xs(j) > pivot) j -= 1
if (i <= j) {
swap(i, j)
i += 1
j += 1
}
}
if (l < j) sort1(l, j)
if (j < r) sort1(i, r)
}
sort1(0, xs.length - 1)
}
}
RichLong
和
RichBoolean
作为测试类型,因为它们实际上并不是反射性的
Ordered
(它们改为
Ordered[Long]
和
Ordered[Boolean]
)。
最佳答案
像这样的东西?
def sort[B >: A, A <: Ordered[B]](xs: Array[B])
关于generics - 初学者 : How do I say "any superclass of generic A",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945892/
在该人已经使用discord.js说过“;say”之后,我如何检查字符串是否不包含“;say”。 我想确保用户不会通过使用命令 ;say ;say ;say 或类似的命令来破坏我正在制作的机器人。 已
我正在尝试学习 Perl,我使用的是 OS-X 10.8.4 并拥有 Perl 版本: 这是为 darwin-thread-multi-2level 构建的 perl 5, version 12, s
无法解决问题:\我应该如何记录第二个参数“says”?因为 SonarQube 一次又一次地问我这个问题。 public class Dogs { private static final o
比如: 第一个数字是:1。 看着第一个数字你可以说1个1,那么第二个数字就是:11。 看着第二个数字你可以说2个1,即第三个数字是:21。 看着第三个
本文关键词:LeetCode,力扣,算法,算法题,外观数列,Count and Say,刷题群 题目地址:https://leetcode.com/problems/count-and-say/#/
我正在使用Laravel Framework做博客,并且已经准备好登录/注册和线程部分。如果您已登录,那么在我的Blog中您只能编辑一个线程。现在,我遇到的问题是,如果我已登录,则可以编辑和删除每个线
正在处理一些2015 AoC学习 clojure 的问题...下面的代码对于第 40 次迭代来说足够快,但在那之后很长时间就陷入了停滞。我与其他一些人的解决方案进行了比较,但我并不清楚为什么这么慢。我
在某些时候,我的 java 代码通过如下简单的一行启动了 Mac 操作系统的“say”命令: Runtime.getRuntime().exec("say -v Victoria -f/Users/u
我需要第二双眼睛看这个。只要其中一个条件(if 或 elsif)为真,我就会得到一个额外的换行符。我不想这样。 use strict; use warnings; use autodie; use f
在 OS X 的终端中,如果您键入“say”并按回车键,则该命令不会退出,并且系统会说出任何后续输入的内容(后跟回车键)。怎么才能达到这样的效果呢? 最佳答案 如果您输入 cat 并按回车键,该命令不
我有一个表单,我正在使用 JavaScript 来验证表单,所以如果我们将一个字段留空,它会提示“请输入您的姓名”。 如果我直接转到链接,它会完美运行。但我正在使用 iFrame 将其嵌入其他网站。当
我正在为 FreecodeCamp 编写一个“Simon Says”元素,该元素跟踪计算机的随机颜色选择以及用户单击响应以遵循亮起颜色的模式。 但是,我遇到了一个问题。 。 。当计算机随机运行选择时,
我发现这个页面对指针的解释如下: http://www.woyouxian.net/c/c0501.html int x = 1, y = 2, z[10]; int *ip; /*
我一直在研究指针。我发现声明指针的细微差别,如 int* x 或 int *x。但是,我一直认为 *x 是指向内存的实际值。所以当我读int *x = &a时,我把它读作“assign value a
我通过导入 speech_recognition 在 python 3 上运行语音到文本代码 我的程序停留在“说点什么”并显示 sudo jack_control start //terminal c
考虑以下代码: #include #include // Variadic version template void f(const Variadic&... variadic) { s
我认为下面的代码格式正确: template using IsSigned = std::enable_if_t >; template... > T myAbs( T val ); 也有人说它是病式
我正在用 PHP 为 twilio 编写代码,以便当我调用我的 twilio 号码时,它会调用另一个号码,当用户拿起它时,它会使用 say 号码向他们读一条消息。 我该怎么做?我找不到任何嵌套到拨号动
我正在玩 Scala By Example 开头的 QuickSort 示例并尝试将其调整为通用类型 A ,而不仅仅是 Int s。 到目前为止我的工作是 def sort[A new Y(i, -
我可以在 verb 中使用任何其他字符吗?帮助发音(假设我有太多选择,只能将它们全部录制为 MP3)。 到目前为止,我发现的只是帮助正确检测音节的连字符: Adgrok 发音为“Addbrooke”
我是一名优秀的程序员,十分优秀!