小编mol*_*lok的帖子

Java 8流收集集

为了更好地理解新流API我试图转换一些旧代码,但我坚持这个.

 public Collection<? extends File> asDestSet() {
    HashMap<IFileSourceInfo, Set<File>> map = new HashMap<IFileSourceInfo, Set<File>>();
    //...
    Set<File> result = new HashSet<File>();
    for (Set<File> v : map.values()) {
        result.addAll(v);
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法为它创建一个有效的收集器:

 public Collection<? extends File> asDestSet() {
    HashMap<IFileSourceInfo, Set<File>> map = new HashMap<IFileSourceInfo, Set<File>>();
    //...
    return map.values().stream().collect(/* what? */);
}
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

Vim 关于默认命令超时的行为

我试图取消映射这是执行( )<C-w>o的默认命令,所以我尝试的第一件事是::only:help :only

nmap <c-w>o <nop>
Run Code Online (Sandbox Code Playgroud)

这种工作是有效的,除非我按<c-w>,等待超过timeoutlen毫秒,然后按o:only被呼叫。

我不明白为什么<c-w>-prefixed 和其他默认命令在毫秒后不会超时timeoutlen,恕我直言,这是意外的。

以前我有 ZoomWin 插件定义了自己的映射:<c-w>o有效地覆盖:only命令,我无法理解为什么有时:only command会调用 ZoomWin 插件而不是 ZoomWin 插件,我意识到当插件映射超时(timeoutlen毫秒后)时它会被调用并且然后我按下o,调用默认<c-w>o命令。

那么,是否可以像自定义映射一样使默认命令超时?

vim

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

使用 sed 正则表达式分组替换字符

我有一个像这样的文本文件:

FOO BAR PIPPO PLUTO 31337 1010
FOOZ BAZ 130
VERY LONG LINE LIKE THIS THEN A NUMBER LIKE 42
Run Code Online (Sandbox Code Playgroud)

我需要把它变成:

FOO-BAR-PIPPO-PLUTO 31337 1010
FOOZ-BAZ 130
VERY-LONG-LINE-LIKE-THIS-THEN-A-NUMBER-LIKE 42
Run Code Online (Sandbox Code Playgroud)

我能做的最好的事情是:

sed -re 's/([A-Z]+)( )([A-Z]+)/\1-\3/g'
Run Code Online (Sandbox Code Playgroud)

但输出是

FOO-BAR PIPPO-PLUTO 31337 1010
FOOZ-BAZ 130
VERY-LONG LINE-LIKE THIS-THEN A-NUMBER LIKE 42
Run Code Online (Sandbox Code Playgroud)

接近,但没有雪茄。知道为什么我的正则表达式不起作用吗?

regex grouping backreference sed

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

将类的所有实例存储在类字段中是不是很糟糕?

我想知道在做这样的事情时是否有任何错误(从OOP的角度来看):

class Foobar:
    foobars = {}
    def __init__(self, name, something):
        self.name = name
        self.something = something

        Foobar.foobars[name] = self

Foobar('first', 42)
Foobar('second', 77)

for name in Foobar.foobars:
    print name, Foobar.foobars[name]
Run Code Online (Sandbox Code Playgroud)

编辑:这是我正在使用的实际代码片段

from threading import Event
class Task:
    ADDED, WAITING_FOR_DEPS, READY, IN_EXECUTION, DONE = range(5)
    tasks = {}
    def __init__(self, name, dep_names, job, ins, outs, uptodate, where):
        self.name = name
        self.dep_names = [dep_names] if isinstance(dep_names, str) else dep_names
        self.job = job
        self.where = where
        self.done = Event()
        self.status = Task.ADDED …
Run Code Online (Sandbox Code Playgroud)

python oop field class

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

在PL/SQL中使用"select*"作为游标被认为是错误的编程?

我通常以这种方式使用游标:

for rec in (select * from MY_TABLE where MY_COND = ITION) loop
    if rec.FIELD1 = 'something' then
        do_something();
    end if;

    if rec.FIELD2 <> 'somethingelse' then
        blabla();
    end if;
end loop;
Run Code Online (Sandbox Code Playgroud)

我的团队负责人告诉我不要使用select *因为编程不好,但我不明白为什么(在这种情况下).

database oracle plsql

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

标签 统计

backreference ×1

class ×1

database ×1

field ×1

grouping ×1

java ×1

java-8 ×1

java-stream ×1

oop ×1

oracle ×1

plsql ×1

python ×1

regex ×1

sed ×1

vim ×1