小编zst*_*art的帖子

为什么Scala使用反向shebang(!#)而不是仅仅将解释器设置为scala

scala文档显示创建scala脚本的方式如下:

#!/bin/sh
exec scala "$0" "$@"
!#
/* Script here */
Run Code Online (Sandbox Code Playgroud)

我知道这会执行scala,其中包含脚本文件的名称和传递给它的参数,并且scala命令显然知道要读取一个以这样的方式启动的文件并忽略所有内容直到反向的shebang !#

我的问题是:我有什么理由为scala脚本使用这种(相当冗长的)格式,而不仅仅是:

#!/bin/env scala
/* Script here */
Run Code Online (Sandbox Code Playgroud)

从快速测试中可以看出,这一点完全相同,但不那么冗长.

bash scala sh

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

Joda时间获得两个实例之间的持续时间

我有两个Instant对象,并希望得到Duration它们之间有多少时间,但是Instant.minus只接受a ReadableDuration或a long的更改时间,并且似乎没有任何方法可以减去两个瞬间来获得它们之间的区别.

我发现的其他答案似乎建议将两个时刻转换为毫秒并自己进行数学计算,但我更喜欢保留类型安全性并且不需要重新实现最终启动逻辑的东西.

我如何Duration从两个Instants 获得?

java jodatime

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

ManuallyDrop ABI 是否保证是 repr(透明)?

经济学

代表(透明)

[...] 仅当单个字段为 pub 或其布局以散文形式记录时,此 repr 才被视为类型的公共 ABI 的一部分。否则,该布局不应被其他 crate 所依赖。

ManuallyDrop<T>repr(transparent),但其单个字段不是pub。它的文档说:

[...] 这个包装是 0 成本的。

ManuallyDrop<T>受到与 相同的布局优化T。[...]

这算不算在散文中记录其布局?可以安全地假设我可以从 转换或以其他方式转换(例如指针转换)TManuallyDrop<T>

rust

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

如何在Common Lisp中设置一个函数

在Common Lisp中,我可以得到一个函数来传递#'语法,如下所示:

(let ((x #'+))
 (funcall x 1 2))
Run Code Online (Sandbox Code Playgroud)

但是假设我想设置一个函数,所以我不必使用funcall它.Common Lisp是否具有本地函数名称表,或仅具有分配给它的全局函数名称表defun

有没有办法分配给除以外的功能符号defun?或者更一般地说:有没有办法可以做类似于这个非工作的例子:

(setf #'x #'+)
(x 1 2)
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp

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

程序不起作用,添加打印语句就可以了,为什么?

我们必须迭代和递归地编写一个 gcd 计算器,并且给我们一个测试脚本,而我的程序失败了 2/10 测试(gcd_iterative(1000, 48) = 1000, gcd_iterative(48, 24) = 48)。所以我在我的程序中加入了打印语句,并且它起作用了。我开始一次删除 1 个语句,并且有 1 行如果我删除该语句,则会产生错误的答案。为什么会发生这种情况以及如何解决它?

using namespace std;

#include <sstream>
#include <string>
#include <iostream>
#include <cstdlib>
int gcd_iterative(int m, int n)
{
    int r;
    while(r != 0)
    {
        r = m % n;
        m = n;
        n = r;
    }
    return m;
}

int gcd_recursive(int m, int n)
{
    if(n == 0)
    {
        return m;
    }
    else
    {
        return gcd_recursive(n, m % n);
    }
}

int …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

bash ×1

c++ ×1

common-lisp ×1

java ×1

jodatime ×1

lisp ×1

rust ×1

scala ×1

sh ×1