小编Sen*_*ess的帖子

为什么有两种方法可以在Git中取消暂存文件?

有时,git建议git rm --cached取消暂存文件git reset HEAD file.我什么时候应该使用哪个?

编辑:

D:\code\gt2>git init
Initialized empty Git repository in D:/code/gt2/.git/
D:\code\gt2>touch a

D:\code\gt2>git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       a
nothing added to commit but untracked files present (use "git add" to track)

D:\code\gt2>git add a

D:\code\gt2>git status
# On branch master
#
# Initial commit
#
# Changes to …
Run Code Online (Sandbox Code Playgroud)

git git-reset git-rm

1109
推荐指数
13
解决办法
101万
查看次数

我什么时候必须将我的方法视为Scala中的部分应用函数?

我注意到当我使用期望其他函数作为参数的函数时,我有时可以这样做:

someFunction(firstParam,anotherFunction)
Run Code Online (Sandbox Code Playgroud)

但其他时候,编译器给我一个错误,告诉我应该编写一个这样的函数,以便将它视为部分应用的函数:

someFunction(firstParam,anotherFunction _)
Run Code Online (Sandbox Code Playgroud)

例如,如果我有这个:

object Whatever {
    def meth1(params:Array[Int]) = ...
    def meth2(params:Array[Int]) = ...
}

import Whatever._
val callbacks = Array(meth1 _,meth2 _)
Run Code Online (Sandbox Code Playgroud)

为什么我不能拥有如下代码:

val callbacks = Array(meth1,meth2)
Run Code Online (Sandbox Code Playgroud)

在什么情况下编译器会告诉我添加_

scala function partial-application

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

Scala的并行系列会保证订购吗?

如果我有这个:

val a = Array(...)
Run Code Online (Sandbox Code Playgroud)

我写

a.par.map(e => someFunc(e))
Run Code Online (Sandbox Code Playgroud)

生成的集合是否与非并行集合的顺序相同?

parallel-processing scala parallel-collections

21
推荐指数
2
解决办法
1571
查看次数

如何使用bash脚本在一个文件中找到行而不在另一个文件中找到行?

想象一下文件1:

#include "first.h"
#include "second.h"
#include "third.h"

// more code here
...
Run Code Online (Sandbox Code Playgroud)

想象一下文件2:

#include "fifth.h"
#include "second.h"
#include "eigth.h"

// more code here
...
Run Code Online (Sandbox Code Playgroud)

我想获取文件2中包含的标题,但不是文件1中的标题,只是那些行.因此,当运行时,文件1和文件2的差异将产生:

#include "fifth.h"
#include "eigth.h"
Run Code Online (Sandbox Code Playgroud)

我知道如何在Perl/Python/Ruby中实现它,但我想在不使用不同编程语言的情况下完成此任务.

bash shell

15
推荐指数
4
解决办法
1万
查看次数

git重置文件和git checkout文件有什么区别?

为什么git允许我重置文件?我以为我理解了reset,因为它正在移动HEAD ...显然我错了.

所以,git reset sha file似乎做同样的事情git checkout sha file,除了我file在索引和工作目录中看到的.

这对我来说没有意义.有人可以解释一下这个区别吗?

git reset git-checkout

14
推荐指数
2
解决办法
3292
查看次数

如何将Scala编译器选项附加到sbt中的scalacOptions?

我用sbt 0.10.

我在.sbt文件中有以下设置:

scalacOptions += "-usejavacp"
Run Code Online (Sandbox Code Playgroud)

问题是当Scala编译器执行并scalacOptions设置时:

[debug] Calling Scala compiler with arguments  (CompilerInterface):
[debug]         -usejavacp
[debug]         -d
[debug]         D:\project\target\scala-2.8.1.final\classes
[debug]         -bootclasspath
...
Run Code Online (Sandbox Code Playgroud)

-usejavacp参数出现在导致此错误的实际Scala jar之前:

scala.collection.mutable.ListBuffer does not take type parameters
Run Code Online (Sandbox Code Playgroud)

是否有附加参数的方法而不是前缀?我也尝试过,++= Array("-usejavacp")但结果是一样的.

scala sbt

10
推荐指数
1
解决办法
5983
查看次数

git svn模糊论证'HEAD'

   $ git svn clone -s http://a_repo local_dir ( by default this brings me r1 ) to hdd
    Initialized empty Git repository in d:/Temp/local_dir/.git/
    r1 = some_SHA (refs/remotes/trunk)

   $ cd local_dir
   $ git svn rebase
   fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
   Use '--' to separate paths from revisions
   log --no-color --no-decorate --first-parent --pretty=medium HEAD: command returned error: 128
Run Code Online (Sandbox Code Playgroud)

我怎样才能真正结帐回购?

我也试过没有变形,使用fetch,但它一次只带一个修订版.我们有几千次提交,按照这个速度,复制存储库需要几天时间.

svn git

8
推荐指数
1
解决办法
7325
查看次数

我如何在Scala中重新实现Tie :: File?

我真的很喜欢Tie :: File,它允许你将tie数组转换为文件的行.您可以以任何方式修改数组,当您完成它时,您untie可以相应地修改该文件的内容.

我想在Scala中重新实现这种行为,这是我到目前为止所做的:

class TiedBuffer(val file:File) extends ArrayBuffer[String] {

  tieFile

  def untie = {
      val writer = new PrintStream(new FileOutputStream(file))
      this.foreach(e => writer.println(e))
      writer.close
      this
  }

  private def tieFile = this ++= scala.io.Source.fromFile(file).getLines()
}
Run Code Online (Sandbox Code Playgroud)

但是,ArrayBuffer上定义的"运算符"返回各种类,不同于我自己的类,例如:

println((new TiedBuffer(somefile) +: "line0").getClass)
Run Code Online (Sandbox Code Playgroud)

给了我一个immutable.Vector.我可以将类限制为一组非常小的预定义方法,但我认为如果我可以提供所有这些方法(foreach/map/...)会很好.

我应该继承什么,或者我应该如何解决这个问题,以便我有一个类似流体的数组接口,它允许我修改文件的内容?

BOUNTY:为了赢得赏金,你能展示一个可以CanBuildFrom用来完成这项任务的工作实例吗?

perl scala

6
推荐指数
1
解决办法
299
查看次数

在运行时应用所有这些Scala特性会产生什么样的影响?

想象一下:

val myObject = if(someCondition) {
    new Whatever with Trait1
} else if(otherCondition) {
    new Whatever with Trait2 with Trait3 with Trait4
} else {
    new Whatever with Trait5
}
Run Code Online (Sandbox Code Playgroud)

myObject对象是否在运行时"组合",或者scala编译器是否足够智能以在编译时生成适当的代码?如果您有多个地方正在应用上述代码中的特征,它会对代码产生什么样的性能影响?

scala traits

5
推荐指数
2
解决办法
192
查看次数

Scala是否允许使用这种提取器?

假设我有这个系列:

val a = Array(Array(1,2,3,4,5),Array(4,5),Array(5),Array(1,2,6,7,8))
Run Code Online (Sandbox Code Playgroud)

有没有办法定义一个可以按以下方式工作的提取器:

a.foreach(e => {
   e match {
      case Array( ending with 5 ) => 
      case _ =>
   }
})
Run Code Online (Sandbox Code Playgroud)

对不起伪代码,但我不知道如何表达它.有没有办法匹配5个作为最后一个元素的东西?如果我想匹配第一个元素为1而最后一个元素为5的东西怎么办?这适用于各种长度的数组(请注意,我在示例中为我的数组特别选择了不同的长度).

谢谢!

scala unapply

5
推荐指数
2
解决办法
1131
查看次数

使用emacs将文本作为参数传递给外部程序

假设我在文件中包含此文本:

/home is where the heart is.
Run Code Online (Sandbox Code Playgroud)

例如,如果我选择/home文本,使用C-spc,有没有办法将它发送到ls,那么最终是否会执行ls /homeM-|不起作用.

emacs

4
推荐指数
2
解决办法
186
查看次数

使用Scala预先添加元素的替代/更好方法

我有一系列的行,就像在这个代码片段中一样:

  def insertBeforeLine(text:String,whichLine:String,what:String) = {
    val lines = text.lines
    lines.foldLeft(ListBuffer[String]())((acumulator,element) => {
       acumulator ++ { if(element == whichLine) Array(what,element) else Array(element) }
    }).mkString("\n")
  }
Run Code Online (Sandbox Code Playgroud)

我试图在每一行等于之前预先添加一些东西whichLine.有更好/更清洁的方式吗?例如,如果我的输入是:

line1
line2
line4
Run Code Online (Sandbox Code Playgroud)

我调用我的函数insertBeforeLine(input,"line4","line3")会产生:

line1
line2
line3
line4
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

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

Scala如何以不同方式推断这两个函数?

这编译:

 def fibonacci():() => Int = {
        var first   = 1
        var second  = 2
        return () => {
            val oldFirst = first
            first = second
            second = second + oldFirst
            second 
        }
    }
Run Code Online (Sandbox Code Playgroud)

这不是:

 def fibonacci():() => Int = {
     var first   = 1
     var second  = 2
     return ():Int => {
         val oldFirst = first
         first = second
         second = second + oldFirst
         second 
     }
 }
Run Code Online (Sandbox Code Playgroud)

我明确地试图告诉它我正在返回一个Int,但是我得到了这个错误:Illegal start of declaration并且它指向该first = second行.他们有什么不同?我正在使用Scala 2.8.1.

scala type-inference

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