小编Spi*_*Pig的帖子

node - 无效的数组长度

我正在使用节点v0.12.4.当我运行以下代码时,node --max-old-space-size=8192 test.js它给了我错误FATAL ERROR: invalid array length Allocation failed - process out of memory

var a = new Array(200000000);
console.log(a.length);
Run Code Online (Sandbox Code Playgroud)

但是,如果我将大小更改为300000000,我不会收到任何错误.这里发生了什么?除了--max-old-space-size我需要改变之外还有一些命令行参数吗?

javascript node.js

25
推荐指数
2
解决办法
7457
查看次数

Scala中函数对象的varargs出错?

为什么这不起作用?

val f = (args: Int*) => args.sum

error: ')' expected but identifier found.
val f = (args: Int*) => args.sum
                  ^
Run Code Online (Sandbox Code Playgroud)

然而,这非常好

def sum(args: Int*) = args.sum
val f = sum _
Run Code Online (Sandbox Code Playgroud)

这样做

val f: (Int*) => Int = args => args.sum
Run Code Online (Sandbox Code Playgroud)

顺便说一句.我正在使用scala 2.9.1

syntax scala variadic-functions

21
推荐指数
1
解决办法
1907
查看次数

谷歌的Scala性能基准测试

去年谷歌发布了一个比较C++,Java,Scala和Go的基准. http://readwrite.com/2011/06/06/cpp-go-java-scala-performance-benchmark 表中的结果看起来很可疑,所以我从https://code.google.com/下载了代码p /多语言工作台/源/结账并自己运行代码.奇怪的是,我的数字非常不同.我没有以任何方式修改代码.刚编译并运行它.根据谷歌的运行时间(秒)是:

C++ - 23
Java 64bit - 134
Scala - 82
Run Code Online (Sandbox Code Playgroud)

但是在我的机器上我得到了

C++ - 13
Java - 14
Scala - 17
Run Code Online (Sandbox Code Playgroud)

速度差异小得多.现在我想知道,这只是因为谷歌在去年改进了这些基准的代码吗?或者它可能与JVM的改进有关?顺便说一句.我使用Java 1.7.0 64位,Scala 2.10.0-RC2和带-O2的gcc 4.7.0

java benchmarking scala

8
推荐指数
0
解决办法
2957
查看次数

定义我自己的toInt方法时scala中的异常

为什么这段代码会抛出异常?

val x = new { def toInt(n: Int) = n*2 }
x.toInt(2)
scala.tools.nsc.symtab.Types$TypeError: too many arguments for method toInteger: (x$1: java.lang.Object)java.lang.Integer
        at scala.tools.nsc.typechecker.Contexts$Context.error(Contexts.scala:298)
        at scala.tools.nsc.typechecker.Infer$Inferencer.error(Infer.scala:207)
        at scala.tools.nsc.typechecker.Infer$Inferencer.errorTree(Infer.scala:211)
        at scala.tools.nsc.typechecker.Typers$Typer.tryNamesDefaults$1(Typers.scala:2350)
        ...
Run Code Online (Sandbox Code Playgroud)

我正在使用scala 2.9.1.final

scala exception

7
推荐指数
1
解决办法
189
查看次数

如何在scala中执行递归循环

我想知道是否有更好的方法在scala中编写递归循环.

def fib(n: Int) = {
  def loop(a: BigInt = 0, b: BigInt = 1, n: Int = n): BigInt = {
    if(n==0) a
    else loop(b, a+b, n-1)
  }
  loop()
}
Run Code Online (Sandbox Code Playgroud)

我可以这样写

def fib(n: Int, a: BigInt = 0, b: BigInt = 1): BigInt = {
  if(n==0) a
  else fib(n-1, b, a+b)
}
Run Code Online (Sandbox Code Playgroud)

但是然后a和b将被曝光并且不再封装在方法内部.

scala

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

kotlin 命令行编译器

如何使用js命令行编译器?

fun main(args: Array<String>): Unit { 
    println("Hello world!") 
}

E:\kotlinc\bin>kotlinc-js -output test -sourceFiles test.kt
ERROR: E:\kotlinc\bin\test.kt: (4, 5) Unresolved reference: println
exec() finished with COMPILATION_ERROR return code
Run Code Online (Sandbox Code Playgroud)

在 IDE 中我也无法让 js 编译工作。是否有 IntelliJ IDEA 12 的最新入门指南?

kotlin

5
推荐指数
1
解决办法
5242
查看次数

不同类型List的通用unapply方法

有没有办法用泛型来概括这个代码?

object ListInt {
  def unapply(o: Any): Option[List[Int]] = o match {
    case lst: List[_] if(lst.forall(_.isInstanceOf[Int])) => 
      Some(lst.asInstanceOf[List[Int]])
    case _ => None
  }
}
object ListDouble {
  def unapply(o: Any): Option[List[Double]] = o match {
    case lst: List[_] if(lst.forall(_.isInstanceOf[Double])) =>
      Some(lst.asInstanceOf[List[Double]])
    case _ => None
  }
}
object ListString {
  def unapply(o: Any): Option[List[String]] = o match {
    case lst: List[_] if(lst.forall(_.isInstanceOf[String])) =>
      Some(lst.asInstanceOf[List[String]])
    case _ => None
  }
}

val o: Any = List("a", "b", "c")
o match { …
Run Code Online (Sandbox Code Playgroud)

generics scala

5
推荐指数
1
解决办法
1467
查看次数

为什么这个js代码这么慢?

此代码在Chrome上为3秒,在Firefox上为6秒.如果我用Java编写代码并在Java 7.0下运行它只需要10ms.Chrome的JS引擎通常非常快.为什么这么慢?顺便说一句.此代码仅用于测试.我知道写一个斐波那契函数不是很实用的方法

fib = function(n) {
  if (n < 2) {
    return n;
  } else {
    return fib(n - 1) + fib(n - 2);
  }
};

console.log(fib(32));
Run Code Online (Sandbox Code Playgroud)

javascript

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

Scala - 推断类型参数

为什么这段代码会产生错误

def test[A](a: List[A], f: A => A) = a.map(f)

println(test(List(1,2,3), _*2))

error: missing parameter type for expanded function ((x$2) => x$2.$times(2))
Run Code Online (Sandbox Code Playgroud)

Scala不应该告诉A是Int吗?

scala

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