小编Nic*_*ber的帖子

百分号在makefile中的作用是什么?

我有一个看起来像这样的makefile:

include $(patsubst %,$(src)/%/Make.tests, $(TEST_SUBDIRS))

%-test: 
       Something here
Run Code Online (Sandbox Code Playgroud)

我理解它在目标规则行中的用途.%第一行的标志是什么?在目标规则行中有百分号签名吗?

当我写的时候make sometarget,makefile中的行是不是作为任何规则的一部分写的(就像这个makefile中的第一行一样)执行了吗?如果是,那么执行的顺序是什么?

makefile

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

在linux中获取文件的上次修改时间

我正在开发一个C程序,我需要获取文件的最后修改时间.程序所做的是一个函数循环遍历目录中的每个文件,当找到特定文件时,它调用另一个函数来检查文件的最后修改时间.

在该目录下有一个mylog.txt.1,mylog.txt.2mylog.txt.3等当我使用ll命令我可以看到,列出目录在linux mylog.txt.1mylog.txt.2进行了修改,在5月4日,并mylog.txt.3于5月3日进行了修改.

但是当程序检查这些文件时,它总是返回第3个.下面是我正在使用的代码.

void getFileCreationTime(char *filePath)
{
    struct stat attrib;
    stat(filePath, &attrib);
    char date[10];
    strftime(date, 10, "%d-%m-%y", gmtime(&(attrib.st_ctime)));
    printf("The file %s was last modified at %s\n", filePath, date);
    date[0] = 0;
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有不同的变化st_ctime,即st_mtime,st_atime但他们都返回第3可能.

感谢您的任何帮助,您可以提供.

c linux timestamp last-modified

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

在 OCaml utop 中使用 s 表达式

我正在用一本名为“真实世界 OCaml”的书学习 OCaml,到目前为止它运行良好。

我有 sexp 和 Sexplib 的问题。

# module type M = sig
#   type t with sexp
# end;;
Run Code Online (Sandbox Code Playgroud)

这是一个教科书示例,但我在 utop 中有一个语法错误,with单词带有下划线。Core.Std开了。

谁能解释一下?我怀疑他们是否改变了语言语法。

ocaml

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

如何获取稀疏数组中的下一个元素

我知道 JavaScript 中的数组与传统数组的不同之处在于它们只是幕后的对象。因此,在内存管理方面,JavaScript 允许稀疏数组以类似于密集数组的方式运行。使用稀疏数组时,有没有办法有效地到达该数组中的下一个元素?

例如,给定这个数组:

var foo = [];
foo[0] = '0';
foo[1] = '1';
foo[2] = '2';
foo[100] = '100';

console.log(foo.length); // => 101
Run Code Online (Sandbox Code Playgroud)

我知道有一种方法可以使用如下方式获取所有元素for ... in

for (var n in foo){
    console.log(n);
}
// Output: 
// 0
// 1
// 2
// 100
Run Code Online (Sandbox Code Playgroud)

但是,是否有一种明确的方法可以简单地从这些元素中的一个元素转到下一个元素?

例如,是否存在某种方法可以实现与此类似的行为?

var curElement = foo[2]; // => 2 (the contents of foo[2])
var nextElement = curElement.next(); // => 100 (the contents of foo[100])
//                           ^^^^^^
// Not an actual function, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

“xlink:href”属性的 SVG 绝对路径不起作用

所以我有一个 SVG 文件,其中包含不同路径的集合:

<!-- icons.svg -->

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <path id="foo" .../>
  <path id="bar" .../>
  ...
</svg>
Run Code Online (Sandbox Code Playgroud)

在我的网页中,我使用这些 SVG 图标:

<!-- index.html -->

<svg viewBox="0 0 256 256">
  <use xlink:href="icons.svg#foo">
</svg>
Run Code Online (Sandbox Code Playgroud)

这工作得很好foo,而且正是我想要的——我们从文件中选择带有 id 的 SVG icons.svg

现在,如果我尝试xlink:href为标签的属性提供文件<use>的_绝对_路径icons.svg,它会失败并且不返回任何内容,并且似乎无法找到该文件。

<svg viewBox="0 0 256 256">
  <use xlink:href="http://localhost:8080/icons.svg#foo">
</svg>
Run Code Online (Sandbox Code Playgroud)

需要注意的是绝对路径正确的。

文档xlink似乎表明绝对路径是有效值,这让我想知道为什么它在这里对我不起作用 - 我是否遗漏了一些东西?

我应该考虑其他方法吗?这不是我目前想要实现的目标吗?

svg xlink

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

有效计算两个字符串之间的编辑距离

我有一个长度为 1000 的字符串 S 和一个长度为 100 的查询字符串 Q。我想计算查询字符串 Q 与长度为 100 的字符串 S 的每个子字符串的编辑距离。一种简单的方法是动态计算编辑距离每个子串独立,即edDist(q,s[0:100]), edDist(q,s[1:101]), edDist(q,s[2:102])....... edDist(q,s[900:1000])

def edDist(x, y):
""" Calculate edit distance between sequences x and y using
    matrix dynamic programming.  Return distance. """
D = zeros((len(x)+1, len(y)+1), dtype=int)
D[0, 1:] = range(1, len(y)+1)
D[1:, 0] = range(1, len(x)+1)
for i in range(1, len(x)+1):
    for j in range(1, len(y)+1):
        delt = 1 if x[i-1] != y[j-1] else 0
        D[i, j] = min(D[i-1, j-1]+delt, …
Run Code Online (Sandbox Code Playgroud)

algorithm edit-distance

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

const和props在react-redux中引用了什么?

export default class customer  {

}

render(){
    const{
        handleSubmit,
        pristine,
        submitting
    } = this.props;
    return{
        <div>
        </div>
    }  
}
Run Code Online (Sandbox Code Playgroud)

我的react-redux代码有这样的东西.任何人都可以告诉我为什么我们使用constthis.props在代码中

reactjs react-redux

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

与%相比,OCaml mod函数返回不同的结果

python中的模运算符相比,OCaml中 的模函数mod返回结果不同.

OCaml的:

# -1 mod 4
- : int = -1
Run Code Online (Sandbox Code Playgroud)

蟒蛇:

>>> -1 % 4
3
Run Code Online (Sandbox Code Playgroud)

为什么结果不同?

是否有任何标准模块功能,如%OCaml中那样运行?

python ocaml operators modulo

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

字符串比较与散列

我最近了解了滚动散列数据结构,基本上它的主要用途之一是在字符串中搜索子字符串。以下是我注意到的一些优点:

  • 比较两个字符串可能会很昂贵,因此应尽可能避免这种情况
  • 散列字符串和比较散列通常比比较字符串快得多,但是每次重新散列新的子字符串传统上需要线性时间
  • 滚动散列能够在恒定时间内重新散列新的子字符串,使其更快、更有效地完成这项任务

我继续在 JavaScript 中实现了滚动散列,并开始分析滚动散列、传统重新散列和仅将子字符串相互比较之间的速度。

在我的发现中,子字符串越大,传统的重新散列方法运行(如预期)所需的时间越长,其中滚动散列运行得非常快(如预期)。但是,将子字符串比较在一起比滚动哈希要快得多。这怎么可能?

为方便起见,假设在大约 240 万个字符串中搜索 100 个字符的子字符串的函数的运行时间如下:

  • 滚动哈希- 0.809 秒
  • 传统 Rehashing - 71.009 秒
  • 仅比较字符串(无散列) 0.089 秒

字符串比较怎么会比滚动哈希快得多?它会不会特别与 JavaScript 有关?字符串是 JavaScript 中的一种原始类型;这会导致字符串比较在恒定时间内运行吗?

我的主要困惑是关于在 JavaScript 中字符串比较如何/为什么如此之快,当时我的印象是它们应该相对较慢。

注意: 通过字符串比较,我指的是类似的东西stringA === stringB

注意: 我在计算机科学社区上问过这个问题,并被告知我也应该在这里问这个问题,因为这很可能是 JavaScript 特定的。

javascript hash runtime

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

如何获得前2个单词?

让我们data.title成为ABC XYZ PQRS - www.aaa.tld.输出需要像ABC + XYZ

我试过这个:

var t = data.title.split(' ').join('+');
t = t.replace(/(([^\s]+\s\s*){1})(.*)/,"Unknown");
 $("#log").text(t);
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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