看起来当我map在并行列表上调用时,操作并行运行,但是当我filter在该列表上执行时,操作严格按顺序运行.因此,为了使filter并行,我首先映射到(A,布尔),然后过滤那些元组,并再次映射所有元组.感觉不太方便.
所以我感兴趣 - 并行集合上的哪些操作是并行化的,哪些不是?
我的代码(Java)从jar中读取一个图像:
Main.class.getResourceAsStream("/res/logo.png")
Run Code Online (Sandbox Code Playgroud)
一切都运行正常(如果我将应用程序打包到罐子后启动应用程序).但是当我使用sbt的run任务运行它时,它返回我null而不是所需的流.
从sbt运行此命令console也会给出null:
getClass.getResourceAsStream("/res/logo.png")
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉sbt将我的资源放在classpath上?
编辑:
我将资源目录设置为与源目录相同:
build.sbt:
resourceDirectory <<= baseDirectory { _ / "src" }
Run Code Online (Sandbox Code Playgroud)
当我加载sbt的`console'并执行以下操作时:
classOf[Main].getProtectionDomain().getCodeSource()
Run Code Online (Sandbox Code Playgroud)
我得到了我的类的位置,但它既不包含res文件夹也不包含任何资源文件.
似乎sbt只将资源复制到生成的jar中,并且不会将它们复制到类dir.我应该修改编译任务来将这些资源文件移动到类目录吗?
EDIT2:
是的,当我手动将资源文件复制到类目录时,我可以从控制台轻松访问它.那么,我应该如何自动化这个过程呢?
EDIT3:
似乎sbt只是无法看到我的资源文件夹 - 它实际上并没有将文件添加到生成的jar文件中!
解:
resourceDirectory in Compile <<= baseDirectory { _ / "src" }
Run Code Online (Sandbox Code Playgroud) 我喜欢ProgressIndicator,除了我想改变它的颜色和圆宽.是否可能(使用css或不使用)?
我有一个简单的Dojo应用程序,只执行一次require调用,加载所有依赖项.问题是,虽然它非常简单,但最终仍然从服务器加载~100个文件.我尝试使用Dojo构建系统来解决这个问题,但似乎我没有足够的理解.
所以我的问题是 - 给出一个依赖项列表,如下所示:
["dojo/parser",
 "dijit/registry",
 "dojo/dom",
 "dojo/on",
 "dojo/query",
 "dojo/dom-class",
 "dojo/request",
 "dijit/form/ValidationTextBox", 
 "dijit/form/Select",
 "dijit/form/NumberSpinner",
 "dijit/form/CheckBox",
 "dijit/layout/ContentPane",
 "dijit/Dialog",
 "dojo/NodeList-traverse",
 "dojo/domReady"]
Run Code Online (Sandbox Code Playgroud)
如何设置构建以创建单个文件(或多个文件,只是不是100个文件)的dojo文件?
如果我不混帐从取回购A到B,在主分支B唯一的改变-不改变remotes/origin/master,并git status让我想起了它.
但现在我想做相反的事情- 更新,B从A推动A:master到B:remotes/origin/master.这样做的原因是此更新发生在ssh上,并且A机器具有公钥验证B机器 - 但反之亦然.
我怎样才能做到这一点?
我需要找到Path2D是否与自身相交.现在,我通过简单地从路径中提取一行数据,然后查找是否有任何相交来实现.但它具有O(n ^ 2)复杂度,因此它非常慢.有更快的方法吗?
当我发布scala时2.9.x,我只是在build.sbt中使用了这一行:
crossScalaVersions := Seq("2.9.0", "2.9.0-1", "2.9.1", "2.9.1-1", "2.9.2")
Run Code Online (Sandbox Code Playgroud)
但是现在,scala 2.10已经出局了,我很困惑.我的直觉是我应该有这样的东西:
crossScalaVersions := Seq("2.10.0")
Run Code Online (Sandbox Code Playgroud)
但是我注意到,当我将scala版本设置2.10.0为时,sbt搜索以#结尾的工件2.10,而不是2.10.0.这里发生了什么?我应该使用什么版本?
编辑:此外,如果我这样做publish-local,该工件最终会以"_2.10"为后缀,而不是"_2.10.0".
为什么这不起作用:
List(true,false).filter(_).size
Run Code Online (Sandbox Code Playgroud)
错误说:
<console>:8: error: missing parameter type for expanded function 
((x$1) => List(true, false).filter(x$1).size)
    List(true,false).filter(_).size
                            ^
Run Code Online (Sandbox Code Playgroud)
但以下作品(对我来说看起来一样):
List(true,false).filter(a => a).size
Run Code Online (Sandbox Code Playgroud)
我正在使用Scala 2.9.0.1.
我最近sys.process在Scala中发现了包,并被它的力量逗乐了.
但是当我尝试将它与bash管和反引号结合起来时,我就陷入了困境.
这显然不起作用:
scala> "echo `date`" !!
res0: String = "
"`date`
"
Run Code Online (Sandbox Code Playgroud)
我试图使用bash可执行文件来获得所需的行为:
scala> "bash -e echo `date`" !!
/bin/echo: /bin/echo: cannot execute binary file
java.lang.RuntimeException: Nonzero exit value: 126
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:
scala> "bash -ic 'echo `date`'" !!
`date`': unexpected EOF while looking for matching `''
`date`': syntax error: unexpected end of file
 java.lang.RuntimeException: Nonzero exit value: 1
Run Code Online (Sandbox Code Playgroud) 目前,我做了类似以下的事情:
set term png
set output 'file.png'
Run Code Online (Sandbox Code Playgroud)
但是脚本中的硬编码文件是非常不灵活的.有没有办法告诉gnuplot输出图像文件到stdout,所以我可以在需要的地方重定向它的输出?
scala ×5
bash ×2
java ×2
sbt ×2
build ×1
collections ×1
dojo ×1
geometry ×1
git ×1
git-fetch ×1
gnuplot ×1
javafx ×1
javafx-2 ×1
javascript ×1
scala-2.10 ×1