为了更好地理解新流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) 我试图取消映射这是执行( )<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
命令。
那么,是否可以像自定义映射一样使默认命令超时?
我有一个像这样的文本文件:
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)
接近,但没有雪茄。知道为什么我的正则表达式不起作用吗?
我想知道在做这样的事情时是否有任何错误(从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) 我通常以这种方式使用游标:
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 *
因为编程不好,但我不明白为什么(在这种情况下).