如果我想创建一个访问应用程序(不是Chrome扩展程序),比如Chrome浏览器同步的书签,我是否需要对Chrome/Chromium使用的界面进行反向工程?或者是否有已发布的API?
我正在处理一个相当大的推文集合,我想为每条推文获取其提及(其他用户的名字,前缀为一个@),如果提到的用户也在文件中:
users = new Dictionary()
for each line in file:
username = get_username(line)
userid = get_userid(line)
users.add(key = userid, value = username)
for each line in file:
mentioned_names = get_mentioned_names(line)
mentioned_ids = mentioned_names.map(x => if x in users: users[x] else null)
print "$line | $mentioned_ids"
Run Code Online (Sandbox Code Playgroud)
我已经使用GAWK处理该文件,因此不再在Python或CI中再次处理它,而是决定尝试将其添加到我的AWK脚本中.但是,我无法找到一种方法来传递相同的文件,为每个文件执行不同的代码.大多数解决方案都意味着多次调用AWK,但后来我放弃了我在第一遍中创建的关联数组.
我可以用非常黑客的方式做到这一点(比如cat'将文件sed复制两次,将其传递给每个文件中的所有行添加不同的前缀cat),但我希望能在几个月内理解这些代码讨厌自己
AWK的做法是什么?
我找到的不那么可怕的方式:
function rewind( i)
{
# from https://www.gnu.org/software/gawk/manual/html_node/Rewind-Function.html
# shift remaining arguments up
for (i = ARGC; i > ARGIND; i--)
ARGV[i] = …Run Code Online (Sandbox Code Playgroud) 我试图用一个简单的promise实现(异步代码)和done()函数实现jasmine测试,虽然被测试的代码运行得很好,但我的测试失败了.谁能帮助我弄清楚我的测试中缺少什么?
var Test = (function () {
function Test(fn) {
this.tool = null;
fn(this.resolve.bind(this));
}
Test.prototype.then = function (cb) {
this.callback = cb;
};
Test.prototype.resolve = function (value) {
var me = this;
setTimeout(function () {
me.callback(value);
}, 5000);
};
return Test;
})();
describe("setTimeout", function () {
var test, newValue = false,
originalTimeout;
beforeEach(function (done) {
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
test = new Test(function (cb) {
setTimeout(function () {
cb();
}, 5000);
});
test.then(function () {
newValue = …Run Code Online (Sandbox Code Playgroud) 我理解闭包,尽管我几乎不使用它们,但是每当我可以挤压一个时,我都不知道如何命名它。
我能想到的最好的方法是在函数名称之前添加一个“make”:
function makeSortSelection(settings1, settings2) {
return function() {
/* sort stuff attending to settings1 and settings2 */
};
}
$("#sort-button").click(makeSortSelection('ascending',foo));
Run Code Online (Sandbox Code Playgroud)
(我几乎总是在 Javascript 中使用它们,但我想这是一个与语言无关的问题)
可悲的是,我发现的大多数闭包示例都只使用“foo”或“sayHello”。我喜欢给我的所有函数一个动词作为名称:函数“做东西”,它们的名字反映了它(“sortSelection”,“populateForm”)。本着同样的精神,我应该如何命名“做某事”的闭包?你使用什么约定,最常见的是什么?
PD:当我有疑问时,我倾向于使用谷歌的风格指南,但它没有说明这一点。
我想编写一个函数来使用尾递归找到C(n,k),我将非常感谢你的帮助.
我达到了这个:
(defun tail-recursive-binomial (n k)
(cond ((or (< n k) (< k 0)) NIL)
((or (= k 0) (= n k)) 1)
(T (* (tail-recursive-binomial (- n 1) (- k 1)) (/ n k)))))
Run Code Online (Sandbox Code Playgroud)
使用二项式系数的以下属性.
但我不知道如何使递归调用成为每个实例执行的最后一条指令,因为最后一条指令是产品.我一直在尝试使用辅助功能,我认为这是唯一的方法,但我还没有找到解决方案.
我需要打印20个有效数字的程序结果,但我不知道如何打印超过15个数字(格式长).有没有办法实现这个目标?
假设我有一个具有以下结构的数据帧:
id A B
1 1 1
1 1 2
1 1 2
1 2 2
1 2 3
1 2 4
1 2 5
2 1 2
2 2 2
2 3 2
2 3 5
2 3 5
2 4 6
Run Code Online (Sandbox Code Playgroud)
我想获得的值的最常见的组合A,并B为每个id:
id A B
1 1 2
2 3 5
Run Code Online (Sandbox Code Playgroud)
我需要为一个相当大的数据集(数百万行)执行此操作.我有几个可怕的,缓慢的,非常惯用的解决方案; 我确信有一种简单的R-ish方式.
我想我应该使用aggregate,但我无法找到一种有效的方法:
> aggregate(cbind(A, B) ~ id, d, Mode)
id A B
1 1 2 2
2 2 …Run Code Online (Sandbox Code Playgroud) 我正在使用pg_fetch_assoc迭代SQL查询的结果,但我需要多次这样做,我找不到一种方法来"倒回"迭代器.
while ($record = pg_fetch_assoc($result, null)) {
if ($record["position"] == $position_cell) {
echo "<strong>J" . $record["order"] . " </strong>";
};
}
Run Code Online (Sandbox Code Playgroud)
所以,如果这个$ result包含4行,我会遍历其中的4行,但是当我再次执行这段代码时,它什么都不做.
我知道我可以使用整数而不是空值进行迭代,但是我必须计算行数,并且我发现这种语法非常方便,所以如果你能告诉我一种方法,它会很棒.
非常感谢.
我需要将日期时间的小时设置为某个值.我知道我可以将差异添加到所需的值,或者使用原始部分创建一个新的日期时间,但是不是更清洁的方式吗?就像是:
declare @d datetime = '09/08/2012 09:14:55'
set @d = SETDATEPARTORSOMETHINGLIKETHAT (hour, @d, 23)
Run Code Online (Sandbox Code Playgroud)
非常感谢.