小编0__*_*0__的帖子

通过反射确定类型是否为单例

如何确定某个类型是否为单例?

case object Foo
case class Bar(i: Int)

def isSingleton[A](implicit t: reflect.ClassTag[A]): Boolean = ???

assert( isSingleton[Foo.type])
assert(!isSingleton[Bar     ])
Run Code Online (Sandbox Code Playgroud)

reflection scala

3
推荐指数
1
解决办法
193
查看次数

获取列表成员之间的差异

我有一个值列表,并希望将其减少到连续成员之间的差异列表.有没有比我想出的更好的方法(琐碎的例子)?

val l1 = List(1,2,3,4,5,6)

val diffs = (l1 zip l1.drop(1)).map{case (x,y) => y - x}.sum
Run Code Online (Sandbox Code Playgroud)

collections scala

3
推荐指数
2
解决办法
1892
查看次数

移动范围的功能

是否有现有的功能可以改变Range生产另一种产品Range,例如

val r = 1 to 5
val s = r.map(_ + 2)  // produces Vector(3, 4, 5, 6, 7)
Run Code Online (Sandbox Code Playgroud)

我想得到3 to 7.

scala scala-collections

3
推荐指数
1
解决办法
129
查看次数

为什么致命:使用sbt-ghpages为有效的git项目发布网站时,不会出现git存储库错误?

我遇到了"fatal: Not a git repository (or any of the parent directories): .git"问题,虽然我在一个有效的git目录中.

我有一个项目根目录.git.我有一个子目录,site它有一个单独的sbt文件,用于构建scaladocs并使用gh-pages插件将它们推送到我项目的gh-pages分支.

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

$ ls -la ..
total 359148
...
drwxr-xr-x   8 myname myname     4096 Jun 18 22:41 .git

$ sbt ghpages-push-site
...
[error] fatal: Not a git repository (or any of the parent directories): .git
Run Code Online (Sandbox Code Playgroud)

那我错过了什么?我在一个有效的git目录中(如git status确认).


我也从原点进行了新的结账,没有运气.我跑进git initsite子目录.没有运气,这个错误只是持续存在.


编辑:奇怪的是,我有一个不同的GitHub项目具有完全相同的布局和sbt构建文件,这里不会发生问题.这有效,但事实并非如此.是否有可能与后一个项目使用不同的组织有关?

git scala github sbt

3
推荐指数
1
解决办法
682
查看次数

杰基尔/宝石:未解决的规格

我正在使用Jekyll,我有两个独立的存储库,我想我最近更新了一个.上次我渲染我的博客时,一切都很好.现在就是这样:

$ jekyll serve --watch
WARN: Unresolved specs during Gem::Specification.reset:
      redcarpet (~> 3.1)
      jekyll-watch (~> 1.1)
      classifier-reborn (~> 2.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
/var/lib/gems/2.1.0/gems/jekyll-2.5.2/bin/jekyll:21:in `block in <top (required)>': cannot load such file -- jekyll/version (LoadError)
    from /var/lib/gems/2.1.0/gems/mercenary-0.3.5/lib/mercenary.rb:18:in `program'
    from /var/lib/gems/2.1.0/gems/jekyll-2.5.2/bin/jekyll:20:in `<top (required)>'
    from /usr/local/bin/jekyll:23:in `load'
    from /usr/local/bin/jekyll:23:in `<main>'
Run Code Online (Sandbox Code Playgroud)

到底他妈发生了什么?似乎Jekyll或Gem自杀了.我怎样才能解决这个问题?

如何防止Jekyll或Ruby搞乱全局安装(我认为这是发生了什么 - 这两个博客并不是彼此独立的)?我可以确保每个Jekyll目录都与其他目录隔离,就像在任何下降编程语言/构建系统中一样吗?


编辑.我随机跑了sudo gem cleanup && bundle install.这似乎已经卸载了所有的宝石(!?!),然后重新安装它们.现在我得到一个不同的错误:

WARN: Unresolved specs during Gem::Specification.reset:
      listen (~> 2.7) …
Run Code Online (Sandbox Code Playgroud)

ruby gem jekyll

3
推荐指数
1
解决办法
2562
查看次数

Disjunction.fold(identity, identity) 有快捷方式吗?

我有一个Disjunction具有相同类型的 scalaz ,Disjunction[String, String]我只想获得价值,无论它是什么。因此我使用了myDisjunction.fold(indentity, identity)但我想知道,有没有像这样的快捷方式myDisjunction.safeGetBecauseTypesAreEqual()

scala scalaz

3
推荐指数
1
解决办法
190
查看次数

sbt console - 为所有子项目设置 scala-version

我为每个模块都有一个多项目构建scalaVersion := "2.11.8"

我想在不接触构建文件的情况下运行 Scala 2.12.0-RC1 testpublish-local我认为以下方法会起作用:

$ sbt
> set scalaVersion in ThisBuild := "2.12.0-RC1"
> test
Run Code Online (Sandbox Code Playgroud)

但这不会改变所使用的 Scala 版本,sbt 仍然使用 Scala 2.11.8 进行编译。这仅适用于单个模块构建(没有project定义)。

如何scalaVersion从 sbt 控制台有效覆盖所有子模块?

scala sbt

3
推荐指数
1
解决办法
937
查看次数

Scala 2.12和Travis.ci - 如何排除与Java 6的组合?

添加Scala 2.12 .travis.yml为我产生一个新问题,因为现在构建将在Java 6下失败:

language: scala

scala:
  - 2.12.0
  - 2.11.8
  - 2.10.6

jdk:
  - oraclejdk8
  - openjdk6
Run Code Online (Sandbox Code Playgroud)

如何解决此问题以排除组合(scala 2.12.0,jdk opendjk6)?

scala travis-ci

3
推荐指数
1
解决办法
235
查看次数

ffmpeg - 将图像序列转换为具有相反顺序的视频

查看文档,我不清楚ffmpeg是否允许我以相反的顺序将图像序列转换为视频,例如使用以下序列:

frame-1000.jpg
frame-999.jpg
frame-998.jpg
...
frame-1.jpg
Run Code Online (Sandbox Code Playgroud)

是否有可能为帧索引提供"步进方向"?

ffmpeg

3
推荐指数
2
解决办法
2848
查看次数

尽管导入了解释器结果类型,但未找到它

我使用Scala 2.9.1.我有一个简单的scala"解释器":

import scala.tools.nsc.interpreter.IMain
import scala.tools.nsc.interpreter.Results.Result
import scala.tools.nsc.interpreter.Results.Success

object App {

  def main(args: Array[String]) {
    val interpreter = new IMain
    val result:Result = interpreter.interpret(args(0))
    result.toString() match {
      case "Success" =>
        {
          var success = result.asInstanceOf[Success]
          println(success.productElement(0))
        };
      case _ => println("very bad result");
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它(maven)时,我得到:

[ERROR] /home/koziolek/workspace/dsi/src/main/scala/pl/koziolekweb/scala/dsi/App.scala:15: error: not found: type Success
[INFO]           var success = result.asInstanceOf[Success]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,编译器表示没有类型Success,尽管我导入了它.

interpreter scala read-eval-print-loop

2
推荐指数
1
解决办法
490
查看次数