小编Jan*_*roň的帖子

函数运算符可以别名吗?

有没有办法如何在function没有像eval这样的开销的情况下对运算符进行别名?我想写

fn test() { ... }
Run Code Online (Sandbox Code Playgroud)

代替

function test() { ... }
Run Code Online (Sandbox Code Playgroud)

删除缩小代码中的一些字节.只是好奇.

javascript

8
推荐指数
1
解决办法
89
查看次数

微优化:使用局部变量与类成员进行迭代

如果我将一次迭代变量声明为类成员,我想我会节省一些时间:

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"进程",这样的微优化会产生影响.)

c++ micro-optimization

7
推荐指数
1
解决办法
138
查看次数

如何将alpha过滤器添加到任何HTML元素并将其他过滤器保留在IE中?

如果我有这个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)解决方案

javascript css internet-explorer

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

如何避免样板代码构造函数?

我们有这样的课:

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,只需更改名称?预处理器可以在这里滥用,但还有其他解决方法吗?

c++ oop inheritance

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

将参数传递给javascript函数

可能重复:
循环内部的Javascript闭包 - 简单实用示例
javascript变量范围/超时后循环闭包

您能否逐步解释为什么结果不同?

代码片段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 parameter-passing

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

使用私有成员创建对象的技术差异

在这里,我发现了一个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调试器的结果:

在此输入图像描述

javascript

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

isset,array_key_exists和!empty的解决方法

在编写php时,我尽量避免使用尽可能多的警告.关于数组,有一个问题让我困扰了很长一段时间.

在处理数组及其值时,我经常在进入"实际工作"之前检查空值.

if(array_key_exists('bla', $array){
  if( !empty($array['bla']) {
    # do something
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

这是很多代码,只是检查我是否有值可以使用.是否有一些更短的方法来检查数组中可能存在或不存在的值?

php arrays

6
推荐指数
3
解决办法
6602
查看次数

如何获得类的CSS宽度?

我的问题是,如何获得class css样式的宽度参数?例如,我的<div class="page css-1" id="page1">div为id = page,类为"page"和"css-1".我想获得css-1类样式的宽度参数?

javascript css jquery

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

为什么要使用构建器模式?

在大多数教程中(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)

c# design-patterns

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

资源文件放在哪里?

如果项目有这些目录

  MyProject
   - bin
     - Debug
       - program.exe
     - Release
       - program.exe
   - program.cs
Run Code Online (Sandbox Code Playgroud)

在哪里放置data.csv将由程序解析的文件?我想将它放在与程序相同的文件夹中。我必须将其复制到调试和发布目录吗?或者,还有更好的方法?


编辑 我还需要将整个目录复制到输出目录,但 Visual Studio 没有此选项。我在这里找到了答案。如果目录很大(就像我的情况一样),可以使用/Dxcopy 属性仅复制较新的文件来解决。就我而言,我将此命令添加到构建后事件(项目->属性)并且效果很好:

xcopy "$(ProjectDir)\FolderToCopy" "$(TargetDir)\FolderToCopy" /D /E /I /Q /Y
Run Code Online (Sandbox Code Playgroud)

xcopy 语法

c# visual-studio-2010

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