有没有办法如何在function
没有像eval这样的开销的情况下对运算符进行别名?我想写
fn test() { ... }
Run Code Online (Sandbox Code Playgroud)
代替
function test() { ... }
Run Code Online (Sandbox Code Playgroud)
删除缩小代码中的一些字节.只是好奇.
如果我将一次迭代变量声明为类成员,我想我会节省一些时间:
struct Foo {
int i;
void method1() {
for(i=0; i<A; ++i) ...
}
void method2() {
for(i=0; i<B; ++i) ...
}
} foo;
Run Code Online (Sandbox Code Playgroud)
然而,这似乎快了20%
struct Foo {
void method1() {
for(int i=0; i<A; ++i) ...
}
void method2() {
for(int i=0; i<B; ++i) ...
}
} foo;
Run Code Online (Sandbox Code Playgroud)
在这段代码中
void loop() { // Arduino loops
foo.method1();
foo.method2();
}
Run Code Online (Sandbox Code Playgroud)
你能解释性能差异吗?
(我需要在Arduino上运行许多简单的paralel"进程",这样的微优化会产生影响.)
如果我有这个HTML
<img src="aaa.png" id="a" style="filter: alpha(opacity=100)"/>
Run Code Online (Sandbox Code Playgroud)
然后这个JavaScript在IE6中工作
document.getElementById("a").filters.alpha.opacity = 60;
Run Code Online (Sandbox Code Playgroud)
但如果没有设置风格
<img src="aaa.png" id="a" style=""/>
Run Code Online (Sandbox Code Playgroud)
javascript抛出错误'filters.alpha'为null或不是对象
这段代码有效
document.getElementById("a").style.filter = "alpha(opacity=60)";
Run Code Online (Sandbox Code Playgroud)
但随后应用于图像的其他滤镜将被覆盖.所以问题是:如何将alpha过滤器添加到任何HTML元素并将其他过滤器保留在IE中?
编辑我想纯javascript(而不是jQuery)解决方案
我们有这样的课:
struct Base {
Base() { ... }
Base(int) { ... }
Base(int,string) { ... }
...
};
Run Code Online (Sandbox Code Playgroud)
我想继承许多课程Base
,所以我写
struct Son : public Base {
Son() : Base() { }
Son(int) : Base(int) { }
Son(int,string) : Base(int,string) { }
};
struct Daughter : public Base {
Daughter() : Base() { }
Daughter(int) : Base(int) { }
Daughter(int,string) : Base(int,string) { }
};
Run Code Online (Sandbox Code Playgroud)
而且我不需要向child的构造函数添加任何代码.是否可以隐式继承它们?要以同样的方式调用它们Base
,只需更改名称?预处理器可以在这里滥用,但还有其他解决方法吗?
您能否逐步解释为什么结果不同?
代码片段A(提醒10)
for(var i=0; i<10; i++) if(i==3) setTimeout(function() {alert(i);}, 100);
Run Code Online (Sandbox Code Playgroud)
小组B(提醒3)
for(var i=0; i<10; i++) if(i==3) setTimeout((function(p) {
return function() {alert(p);}
} )(i), 100);
Run Code Online (Sandbox Code Playgroud) 在这里,我发现了一个javascript模块模式,可以启用对象的私有成员.如果我做对了,可以这样写:
var myObject1 = (function(){
var privateMember = 42;
return {
publicMember: function() {
return privateMember;
}
}
})();
Run Code Online (Sandbox Code Playgroud)
但是有更有效的方法:
var myObject2 = new function() {
var privateMember = 42;
this.publicMember = function() {
return privateMember;
}
}
Run Code Online (Sandbox Code Playgroud)
这两者有什么区别吗?有没有其他可能实现私人成员?
这是Chrome调试器的结果:
在编写php时,我尽量避免使用尽可能多的警告.关于数组,有一个问题让我困扰了很长一段时间.
在处理数组及其值时,我经常在进入"实际工作"之前检查空值.
if(array_key_exists('bla', $array){
if( !empty($array['bla']) {
# do something
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
这是很多代码,只是检查我是否有值可以使用.是否有一些更短的方法来检查数组中可能存在或不存在的值?
我的问题是,如何获得class css样式的宽度参数?例如,我的<div class="page css-1" id="page1">
div为id = page,类为"page"和"css-1".我想获得css-1类样式的宽度参数?
在大多数教程中(Judith Bishops的书,或者这里),我看到类似于下面的例子.
如果构建器模式意味着在Director类中创建方法Construct,它执行一组Builder子操作...
class Director {
public static void Construct(Builder builder) {
builder.BuildPartA();
builder.BuildPartB();
...
}
}
abstract class Builder {
public abstract void BuildPartA();
public abstract void BuildPartB();
...
}
class Builder1 : Builder { ... }
class Builder2 : Builder { ... }
void Main() {
Builder1 b1 = new Builder1();
Builder2 b2 = new Builder2();
Director.Construct(b1);
Director.Construct(b2);
}
Run Code Online (Sandbox Code Playgroud)
...为什么我们不将Construct方法移动到Builder类?
class Builder {
public virtual void BuildPartA();
public virtual void BuildPartB();
public void Construct() {
BuildPartA(); …
Run Code Online (Sandbox Code Playgroud) 如果项目有这些目录
MyProject
- bin
- Debug
- program.exe
- Release
- program.exe
- program.cs
Run Code Online (Sandbox Code Playgroud)
在哪里放置data.csv
将由程序解析的文件?我想将它放在与程序相同的文件夹中。我必须将其复制到调试和发布目录吗?或者,还有更好的方法?
编辑
我还需要将整个目录复制到输出目录,但 Visual Studio 没有此选项。我在这里找到了答案。如果目录很大(就像我的情况一样),可以使用/D
xcopy 属性仅复制较新的文件来解决。就我而言,我将此命令添加到构建后事件(项目->属性)并且效果很好:
xcopy "$(ProjectDir)\FolderToCopy" "$(TargetDir)\FolderToCopy" /D /E /I /Q /Y
Run Code Online (Sandbox Code Playgroud)
(xcopy 语法)