小编mis*_*tor的帖子

Scala中2D数组的深层副本?

如何在Scala中执行2D数组的深层复制?

例如

val a = Array[Array[Int]](2,3)
a(1,0) = 12
Run Code Online (Sandbox Code Playgroud)

我希望val b复制a的值但不指向同一个数组.

arrays scala deep-copy

8
推荐指数
2
解决办法
3715
查看次数

在Tornado中发送二进制文件

在某个GET请求中,我需要在本地读取文件,具体取决于请求中的参数,并在请求的输入流上发送.我该怎么做?

class GetArchives(tornado.web.RequestHandler):
    def get(self, param1, param2):
        path = calculate_path(param1, param2)
        try:
            f = open(path, 'rb')
            # TODO: send this file to request's input stream.
        except IOError:
            raise tornado.web.HTTPError(404, 'Invalid archive')
Run Code Online (Sandbox Code Playgroud)

python tornado python-3.x

8
推荐指数
2
解决办法
8380
查看次数

NonFatal能抓住Throwable吗?

据我所知,Java/JVM中的最佳实践要求你永远不要Throwable直接捕获,因为它涵盖的Error内容恰好包含OutOfMemoryErrorKernelError.这里这里有一些参考.

但是在Scala标准库中,有一个提取器NonFatal被广泛推荐(并被广泛使用的流行库如Akka)作为块中的最终处理程序(如果需要)catch.如果怀疑这个提取器恰好是捕获Throwable并重新抛出它,如果它是致命错误之一.请参阅此处的代码.

这可以通过一些反汇编的字节码进一步证实:

拆卸输出

问题:

  1. 我在第一段中做出的假设是否正确?或者我错误地认为它不可能被捕获Throwable
  2. 如果这个假设是正确的,那么这种行为会NonFatal导致严重的问题吗?如果没有,为什么不呢?

java jvm scala exception-handling akka

8
推荐指数
2
解决办法
596
查看次数

如何将std :: string与采用char []缓冲区的Win32函数混合使用?

有许多Win32函数接受缓冲区的地址,例如TCHAR[256],并将一些数据写入该缓冲区.它可能小于缓冲区的大小,也可能是整个缓冲区.

通常你会在循环中调用它,例如从流或管道中读取数据.最后,我想有效地返回一个字符串,该字符串包含来自所有迭代调用的完整数据,以检索此数据.我一直在考虑使用,std::string因为它的+ =以类似于Java或C#StringBuffer.append()/ StringBuilder.Append()方法的方式进行优化,有利于速度而不是内存.

但是我不确定如何最好地std::string与Win32函数混合使用,因为这些函数都是char[]从头开始的.有什么建议?

c++ string winapi stl

7
推荐指数
3
解决办法
4680
查看次数

为什么我在下面的代码中获得NPE?

以下代码按预期执行,但最后给出了一个代码NullPointerException.我在这做错了什么?

(ns my-first-macro)

(defmacro exec-all [& commands]
  (map (fn [c] `(println "Code: " '~c "\t=>\tResult: " ~c)) commands))

(exec-all
  (cons 2 [4 5 6])
  ({:k 3 :m 8} :k)
  (conj [4 5 \d] \e \f))

; Output:
; Clojure 1.2.0-master-SNAPSHOT
; Code:  (cons 2 [4 5 6])   =>  Result:  (2 4 5 6)
; Code:  ({:k 3, :m 8} :k)  =>  Result:  3
; Code:  (conj [4 5 d] e f)     =>  Result:  [4 5 d e f] …
Run Code Online (Sandbox Code Playgroud)

lisp macros clojure

7
推荐指数
2
解决办法
194
查看次数

在C++中"过滤"高阶函数

C++标准库和/或Boost是否与filter函数式语言中的函数类似?

我能找到的最接近的功能是std::remove_copy_if它似乎与我想要的相反.是否boost::lambda有任何函数来获取我的谓词的否定版本(类似于notHaskell)?我可以否定我的谓词并std::remove_copy_if随之使用它.

请注意,我不是在问如何filter用C++ 编写函数; 我只想问标准库和/或Boost是否已经提供了这样的功能.

提前致谢.

c++ functional-programming higher-order-functions

7
推荐指数
2
解决办法
1470
查看次数

如何从Scala中的joda-time DateTime中减去一天/小时/分钟?

我正在尝试使用其Scala包装器的 joda-time .

val dt是一个DateTime并包含一个date (zero time),我如何获得当天的日期呢?dt - 1.days不起作用并给出

"type mismatch" ("found: org.scala_tools.time.Imports.DateTime, required: ?{val -:?}").
Run Code Online (Sandbox Code Playgroud)

像Scala-time这样的例子2.hours + 45.minutes + 10.seconds也不起作用,或者说它hours不是一个成员Int.

例如,Joda-time示例DateTime.dayOfWeek().addToCopy(3)不起作用dayOfWeek,因为它不是成员org.scala_tools.time.Imports.DateTime.

格式化的DateTime输入和输出似乎可以正常工作.

更新:似乎是NetBeans IDE的一个错误.它显示错误,而编译器编译正常,程序按预期的方式工作dt - 1.days.

datetime scala jodatime

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

什么是最简洁的Scala方式来反转地图?

什么是最简洁的Scala方式来反转地图?地图可能包含非唯一值.

编辑:

逆转 Map[A, B]应该给Map[B, Set[A]](或者一个MultiMap,那会更好).

scala scala-2.8 scala-collections

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

使用LINQ查询语法与自定义Maybe monad实现

我想Maybe在C#中编写一个简单的monad.我希望能够使用LINQ查询语法.这是我到目前为止所提出的:

using System;
using System.Collections.Generic; 

abstract class Maybe<A> {
  public abstract Maybe<B> SelectMany<B>(Func<A, Maybe<B>> f);
  public abstract Maybe<B> Select<B>(Func<A, B> f);
}

class Just<A> : Maybe<A> {
  private readonly A a;

  public Just(A a) {
    this.a = a;
  }

  override public Maybe<B> SelectMany<B>(Func<A, Maybe<B>> f) {
    return f(a);
  }

  override public Maybe<B> Select<B>(Func<A, B> f) {
    return new Just<B>(f(a));
  }

  override public string ToString() {
    return "Just " + a;
  }
}

class Nothing<A> : Maybe<A> {
  override …
Run Code Online (Sandbox Code Playgroud)

c# monads functional-programming

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

通过ant构建脚本将命令行参数传递给Java

在运行以下命令时:

ant targetname -Dk1=v1 -Dk2=v2
Run Code Online (Sandbox Code Playgroud)

我希望传递给命令行参数java,比如java whatever -Dk1=v1 -Dk2=v2.

我需要使用System.getProperty或从Java代码访问这些参数System.getenv.

我需要在我的ant构建脚本中编写什么来实现这一目标?

或者我应该采取其他方法吗?

java ant command-line-arguments

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