我怎么能有一个抽象枚举,或某种基本枚举?
在我的通用代码中,我想要一个枚举占位符MyRetems的概念,而不是将自己与具体的枚举联系起来.然后在我的每个项目中,我都会有一个具体的实现.
例如共同代码
public interface MyItems {
// Marker interface
}
Run Code Online (Sandbox Code Playgroud)
项目A.
public enum Items implements MyItems {
RED_CAR, BLUE_CAR, GREEN_CAR;
}
Run Code Online (Sandbox Code Playgroud)
项目B.
public enum Items implements MyItems {
BROWN_TREE, GREEN_TREE;
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但在我的公共代码中,我不能在我的接口枚举上写一个循环,因为它不是枚举.在我的常用代码中,我想写
for (MyItems item : MyItems.values())
doSomething(item);
Run Code Online (Sandbox Code Playgroud)
但我不能,因为我的界面只是一个标记界面,它没有.values().
任何建议都非常感谢.我不知道我是否完全以错误的方式尝试.
在Scala 2.8中执行文件IO的最佳方法是什么?
我想要做的就是将一个巨大的CSV文件剪切成许多较小的文件,每个文件有1000行数据,每个文件保留标题.
我用命令在Ubuntu Lucid中安装了R.
sudo aptitude安装r-base
当我尝试"install.packages"时,它似乎下载了源代码,然后用了很长时间来编译它.我怎样才能下载并安装二进制文件,就像我以前在Windows上一样?
有没有必要自己编译包?我在VM内部运行,因此尽可能保持简洁.
谢谢
为什么(在Scala REPL中)我可以写,例如,
def double(d: Int) = 2*d
(0 until 10).zipWithIndex.map(i => double(i._1))
Run Code Online (Sandbox Code Playgroud)
要不就
(0 until 10).zipWithIndex.map(_._1)
Run Code Online (Sandbox Code Playgroud)
但我不能写
(0 until 10).zipWithIndex.map(double(_._1))
Run Code Online (Sandbox Code Playgroud)
error: missing parameter type for expanded function ((x$1) => x$1._1) (0 until 10).zipWithIndex.map(double(_._1))
Run Code Online (Sandbox Code Playgroud)
?
第二次实施有什么问题?
作品:
scala> List(1,2,3).collect{ case i: Int if i % 2 == 0 => i }
res1: List[Int] = List(2)
Run Code Online (Sandbox Code Playgroud)
不:
scala> val evens = PartialFunction[Any, Int]{
| case i: Int if i % 2 == 0 => i
| }
evens: PartialFunction[Any,Int] = <function1>
scala> List(1,2,3).collect{evens}
scala.MatchError: 1 (of class java.lang.Integer)
at $anonfun$1.apply(<console>:7)
at $anonfun$1.apply(<console>:7)
at scala.PartialFunction$$anonfun$apply$1.applyOrElse(PartialFunction.scala:242)
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33)
at scala.collection.TraversableLike$$anonfun$collect$1.apply(TraversableLike.scala:278)
at scala.collection.immutable.List.foreach(List.scala:318)
...
Run Code Online (Sandbox Code Playgroud) 我想用 绘制几个分布geom_density,并且除了其中之一之外的所有分布都淡出。我该怎么做,因为以下内容不会alpha按预期改变。
require("ggplot2")
data = rbind(
data.frame(generation=1, samples=rnorm(90)),
data.frame(generation=2, samples=rnorm(100)),
data.frame(generation=3, samples=rnorm(110)),
data.frame(generation=4, samples=rnorm(120)),
data.frame(generation=5, samples=rnorm(130)),
data.frame(generation=6, samples=rnorm(140))
)
maxGen = max(data$generation)
ggplot(data) +
geom_density(
aes(
colour= factor(generation),
x=samples,
alpha=ifelse(data$generation == maxGen, 0.3, 1.0)
)
)
Run Code Online (Sandbox Code Playgroud)
如果它有所作为,真实的东西会在另一个变量上添加一个方面包装。