我有一个类,每个方法都以相同的方式启动:
class Foo {
public void bar() {
if (!fooIsEnabled) return;
//...
}
public void baz() {
if (!fooIsEnabled) return;
//...
}
public void bat() {
if (!fooIsEnabled) return;
//...
}
}
Run Code Online (Sandbox Code Playgroud)
fooIsEnabled
对于类中的每个公共方法,是否有一种很好的方法要求(并且希望不是每次都写入)该部分?
我每天都启动emacs并打开前一天打开的完全相同的文件.有什么我可以添加到init.el文件,所以它将重新打开我上次退出emacs时使用的所有缓冲区?
我正在开发一个网页,我正在进行一个AJAX调用,返回一大块HTML,如:
<div>
<!-- some html -->
<script type="text/javascript">
/** some javascript */
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
我将整个东西插入DOM,但JavaScript没有运行.有没有办法运行它?
一些细节:我无法控制脚本块中的内容(因此我无法将其更改为可以调用的函数),我只需要执行整个块.我无法在响应上调用eval,因为JavaScript位于更大的HTML块中.我可以做某种正则表达式来分离出JavaScript,然后在它上面调用eval,但这很令人讨厌.谁知道更好的方法?
有没有办法va_list
从头开始创建?我正在尝试调用一个va_list
带有参数的函数:
func(void **entry, int num_args, va_list args, char *key);
Run Code Online (Sandbox Code Playgroud)
...来自不采用可变数量参数的函数.我能想到的唯一方法是创建一个中间函数,它接受varargs然后传递它的va_list,这是非常愚蠢的:
void stupid_func(void **entry, char *key, int num_args, ...) {
va_list args;
va_start(args, num_args);
func(entry, num_args, args, key);
va_end(args);
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?我不能改变func
签名.
nice
说"nice()" 的手册页将inc添加到调用进程的nice值.那么,我们可以使用它来更改由创建的线程的nice值pthread_create
吗?
编辑:我们似乎可以为每个线程设置好的值.
我写了一个应用程序,为不同的线程设置了不同的好的值,并观察到"更好"的线程已被安排在较低的优先级.检查输出,我发现字符串"高优先级................"更频繁地输出.
void * thread_function1(void *arg)
{
pid_t tid = syscall(SYS_gettid);
int ret = setpriority(PRIO_PROCESS, tid, -10);
printf("tid of high priority thread %d , %d\n",tid ,getpriority(PRIO_PROCESS,tid));
while(1){
printf("high priority ................\n");
}
}
void * thread_function(void *arg)
{
pid_t tid = syscall(SYS_gettid);
int ret = setpriority(PRIO_PROCESS, tid, 10);
printf("tid of low priority thread %d , %d \n",tid ,getpriority(PRIO_PROCESS,tid));
while(1)
{
printf("lower priority\n");
}
}
int main()
{
pthread_t id1;
pthread_t id2;
pid_t pid = …
Run Code Online (Sandbox Code Playgroud) 这在5.8和5.10中一直在为我工作,但在5.12中我的代码创建了这个奇怪的非qr对象:
# running "print Dumper($regex)"
$VAR1 = bless( do{\(my $o = '')}, 'Regexp' );
Run Code Online (Sandbox Code Playgroud)
打印qr //不是由我的代码创建的,如下所示:
# running "print Dumper(qr/foo/i)"
$VAR1 = qr/(?i-xsm:foo)/;
Run Code Online (Sandbox Code Playgroud)
我的代码基本上是:
REGEXP *rx = re_compile(pattern, flags);
SV *regex = sv_2mortal(newSVpv("",0));
sv_magic(regex, (SV*)rx, PERL_MAGIC_qr, 0, 0);
stash = gv_stashpv("Regexp", 0);
sv_bless(newRV((SV*)regex), stash);
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何从5.12中的字符串正确创建一个正则表达式?
在Chrome开发者工具窗口中,我输入了:
> name = ["a", "b", "c"]
["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)
但是,name
成了一个字符串:
> typeof name
"string"
> name
"a,b,c"
> name[1]
","
Run Code Online (Sandbox Code Playgroud)
对于其他变量名称显然不是这样!
> foo = ["a", "b", "c"]
["a", "b", "c"]
> typeof foo
"object"
> foo[1]
"b"
Run Code Online (Sandbox Code Playgroud)
并且name
被定义为页面加载时的空字符串(据我所知,除了字符串之外不能成为任何其他内容).
那么,有什么用name
?
我创建了我能想象到的最简单的 Flask 应用程序:
import flask
from flask import Flask
application = Flask(__name__)
@application.route('/')
def index():
return flask.jsonify(ok=True)
Run Code Online (Sandbox Code Playgroud)
我于 1/26 将此应用程序部署到 Elastic Beanstalk。自部署以来,它已为 0 个请求提供服务。这是使用Amazon 的内存监控脚本的内存使用情况图:
您可以看到(我假设)垃圾收集发生在 1/29 的地方。但是到底是什么分配了这么多内存呢?如果这是正常的,我应该如何监控内存,以便我可以真正确定我的(真实)应用程序是否存在内存泄漏?这是 Flask 的错、Python 的错、AWS 的错,还是……其他原因?
编辑补充:我今天下午改用 mod_wsgi,但似乎没有任何效果。更新图(dips 正在部署新版本,需要尝试几次才能使配置正确):
的输出free -m
:
total used free shared buffers cached
Mem: 532 501 31 0 81 37
-/+ buffers/cache: 381 150
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud) I have a canvas and I want users to be able to drag graphic elements around it. Thus, I don't want the canvas itself to drag, but I want to handle dragstart, drag, and drop events when the mouse does those things.
I'm using Angular 2, so I have:
<!-- editor.component.html -->
<div #rendererContainer
draggable="true"
(dragstart)="onDragStart($event)"
(drag)="onDrag($event)"
(dragover)="onDrag($event)"
(drop)="onDragEnd($event)"
(dragend)="onDragEnd($event)">
</div>
Run Code Online (Sandbox Code Playgroud)
Then in editor.component.ts:
onDragStart(event) {
console.log(`starting`);
event.preventDefault();
}
onDrag(event) {
console.log('dragging');
event.preventDefault();
}
onDragEnd(event) {
console.log('drag end');
event.preventDefault();
} …
Run Code Online (Sandbox Code Playgroud) 我想开源项目,但我有一个头文件,如下所示:
class Foo {
public:
int bar;
int super_secret_field;
};
Run Code Online (Sandbox Code Playgroud)
我希望开源标头有bar
字段,但不是super_secret_field
.我仍然想要一个封闭源版本super_secret_field
.
我不能使用两个单独的头文件,因为那么使用的类Foo
将具有奇怪的包含.我可以用#includes做一些hacky然后在发布的版本中删除它们,但我宁愿不这样做.
有没有更好的办法?
我有一个使用2空格缩进的C项目(在/ projects/c中)和一个带有4空格缩进的C++项目(在/ projects/cpp中).我无法弄清楚如何让Emacs自动做正确的间距,具体取决于我打开文件的位置.
我可以告诉它使用c++-mode
(4个空格)表示.cpp文件,但.h文件(在cpp项目中)仍默认为c-mode
(2个空格).
有什么东西可以放在我的.emacs文件中,以缩进.h文件不同的空格数或更改模式,具体取决于目录?
我正在研究一个Perl模块,每当我调用skip()
我用以下方式编写的方法时:
$cursor->skip(4);
Run Code Online (Sandbox Code Playgroud)
我明白了:
Undefined subroutine &MyModule::Cursor::skip called at t/tester.pl line 24. (in cleanup) invalid object at t/tester.pl line 24.
当我称之为:
MyModule::Cursor::skip($cursor, 4);
Run Code Online (Sandbox Code Playgroud)
Perl发现了!
奇怪的是,如果我将" skip
" 命名为" "(" skipper
"," hello
"),则此语法有效:
$cursor->skipper(4);
Run Code Online (Sandbox Code Playgroud)
我想也许skip()
是一个"秘密"保留的关键词或者其他东西,但我也有方法命名sort()
和next()
(我知道是保留的),这些工作正常.
我真的很想把这个方法命名为" skip
." 有谁知道为什么Perl找不到它?
我正在使用背景脚本和弹出窗口创建chrome扩展程序。我可以右键单击扩展图标,然后选择“检查弹出窗口”以调试弹出窗口,然后单击“检查视图:背景页面”以调试后台脚本。但是,由于必须在两个调试器之间保持切换,这很烦人,因为打开一个调试器会关闭另一个调试器。
有什么方法可以使两者保持一致,或者最好是在一个调试控制台下统一它们?
编辑添加:这不是此问题的重复,因为我能够同时看到弹出窗口和后台任务的输出。