对于长方法的名称,PEP8的正确方法是什么?我有一个自我描述方法的单元测试:
def success_if_buying_price_item_when_participating_and_progression_is_100_percent(self):
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这个(太长?)方法达到了80个字符的行限制.
我应该重命名它并在代码中添加描述还是有另一种方式?
关于这个问题有很多问题,但没有答案让我满意; 我正在使用Swing编写一个简单的GUI窗口.目前它只包含4个按钮,其中一个是打开文件选择器.
当我使用VisualVM监视工具查看内存使用情况时,结果如下所示:
内存使用情况http://img17.imageshack.us/img17/3589/8txc.png
当我点击按钮时出现第一个长矛,然后我什么也没做.
这是空闲应用程序消耗10M/min(当它什么都没做的时候)这是正常的吗?
由于我必须使用图像做一个类似quizz的applet,System.gc()每次切换到下一个问题时我是否应该使用它来避免(可能是巨大的?)内存使用?
在Visual Studio中是否有办法处理非平凡的联合.以下代码运行正常,g++ -std=c++11但VS抱怨:
无效的联合成员 - 类"Foo"具有不允许的成员函数
代码如下:
struct Foo {
int value;
Foo(int inV = 0) : value(inV) {}
};
union CustomUnion {
CustomUnion(Foo inF) : foo(inF) {}
CustomUnion(int inB) : bar(inB) {}
int bar;
Foo foo;
};
int main() {
CustomUnion u(3);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio中是否有一种方法可以支持这种联合(例如编译选项)?或者我应该更改我的代码,如果是这样的话?
有很多与后台堆栈管理相关的问题,但没有一个真正让我满意。我发现的越接近那个,但对我来说它看起来像是一种丑陋的解决方法。
当在活动按钮点击一个,我发起一项活动乙用startActivityForResult(),期待一个简单的一个- >乙回堆栈。但是如果你足够快地向按钮发送垃圾邮件,你最终会触发两个意图,因此两个活动堆叠A -> B -> B。
我试图使用FLAG_ACTIVITY_SINGLE_TOP标志来防止第二个创建B活动,但它没有改变任何东西:
这是活动A 中的按钮侦听器:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), ActivityB.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivityForResult(intent, REQUEST_CODE);
}
});
Run Code Online (Sandbox Code Playgroud)
并且日志明确指出onCreate()in 调用了两次(而不是预期的onNewIntent):
btn.onClick()
活动B.onCreate()
btn.onClick()
活动B.onCreate()
我的活动必须不为singleTask也singleInstance,他们应该只是返回堆叠任何经常性活动的一部分。任何许可将不胜感激!
我正在努力解决一个奇怪的问题。我正在尝试使用 shell 变量作为参数运行 cmake 命令行,但它失败了。这就是我所做的:
#1. Basic. works fine
cmake -G 'Sublime Text 2 - Ninja'
#2. Argument into variable. error
CMAKE_CONFIG="-G 'Sublime Text 2 - Ninja'"
cmake $CMAKE_CONFIG ../..
> CMake Error: Could not create named generator 'Sublime Text 2 - Ninja'
#3. Adding -v before variable. 'compile' but ignore the argument (generate a Makefile). Hacky and senseless?
CMAKE_CONFIG="-G 'Sublime Text 2 - Ninja'"
cmake -v$CMAKE_CONFIG ../..
#4. Quoting argument. error (same as #2)
CMAKE_CONFIG="-G 'Sublime Text 2 - …Run Code Online (Sandbox Code Playgroud) 我正在编写我的String类的版本,但Valgrind抱怨<<我的字符串操作符的实现.错误是在错误的行,如果我通过char打印char它工作得很好.
我哪里错了?
Valgrind错误:
== 2769 ==有条件的跳转或移动取决于未初始化的值(s)
== 2769 ==在0x4C2AC28:strlen(在/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so中)
== 2769 == by 0x4ECAD60:std :: basic_ostream>&std :: operator <<>(std :: basic_ostream>&,char const*)(在/usr/lib/x86_64-linux-gnu/libstdc++.so中. 6.0.17)
== 2769 == by 0x400BD5:operator <<(std :: ostream&,String&)(string.cpp:22)
== 2769 == by 0x400AAC:main(main.cpp:12)
我<<的字符串运算符:
ostream & operator << (ostream & o, String & inS) {
o << inS._pData << " "; // the wrong line
return o;
}
Run Code Online (Sandbox Code Playgroud)
我的String班级:
class String {
public:
unsigned _size;
char * _pData;
String(); …Run Code Online (Sandbox Code Playgroud) 很多时候我最终会围绕现有函数编写包装函数,例如:
function gl {
some_computed_stuff=...
git --no-pager log --reverse $some_computed_stuff "$@"
}
function m {
make "$@" && notify-send success || notify-send failed
}
Run Code Online (Sandbox Code Playgroud)
我知道别名保持自动完成,但有时需要函数,在这种情况下自动完成会丢失.例如,我想继续git log完成我的功能gl或make完成m.
我试图添加,compctl -K _git gl但没有提出任何建议.它无论如何都行不通,因为我必须以某种方式找到如何log为_git自动完成脚本提供参数,所以我的问题是:
有没有办法让ZSH(还有bash)明白打字gl是完全相同的git log?像(仅适用于ZSH):
compctl 'git log' gl
compctl 'make' m
Run Code Online (Sandbox Code Playgroud) 我有一个缩进一个空格的文件:
Level1 with some text
Level2
Level1
Level3 and its text
Run Code Online (Sandbox Code Playgroud)
我想缩进4个空格。我考虑了一个正则表达式来匹配起始空间^(\s)*。但是,我不知道如何将其替换为“为找到的每个空间应用一个选项卡”。
我的预期输出是:
Level1 with some text
Level2
Level1
Level3 and its text
Run Code Online (Sandbox Code Playgroud)
有类似的东西\t*len(\1)存在吗?
编辑:我希望有一个基于正则表达式的解决方案,因为我的目标是在 SublimeText 编辑器中使用它,该编辑器具有正则表达式的替换功能。
在脚本中,我想逐行读取流程输出,并获得用户的确认.到目前为止我已经这样做了:
mycommand-outputpiped | while (read line)
do
read line
#dostuff
read confirm #oops -> this read the next item from the pipe, not the keyboard
done
Run Code Online (Sandbox Code Playgroud)
所以我试着添加:
read confirm < /dev/stdin
Run Code Online (Sandbox Code Playgroud)
但它并没有改变它的东西,它仍然从管道中读取下一行......我该如何处理?