小编mad*_*erd的帖子

maven tomcat插件:tomcat7:run还是tomcat7:run-war?

tomcat7-maven-plugin在我的Java Web应用程序中使用.现在我可以使用命令运行我的Web服务器了mvn clean tomcat7:run.最近我注意到另一个命令tomcat7:run-war来自https://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/plugin-info.html,其中说:

tomcat7:run:使用嵌入式Tomcat服务器
将当前项目作为动态 Web应用程序运行.

tomcat7:run-war:使用嵌入式Tomcat服务器
将当前项目作为打包的 Web应用程序运行.

我知道该命令tomcat7:run-war会将我的应用程序打包到一个jar或一个war文件,然后在嵌入式服务器中运行它.我的问题是,在什么情况下我们应该使用这个命令,还tomcat7:run不够?或者运行打包应用程序可能会有更高的性能?我不确定.提前致谢.

java tomcat maven-plugin maven

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

在Python中返回累加器的函数

我正在阅读黑客和画家,并对作者提到的问题感到困惑,以说明不同编程语言的力量.

问题是:

我们想编写一个生成累加器的函数 - 一个取n的函数,并返回一个函数,该函数接受另一个数字i并返回n递增i.(这是增加的,而不是加号.累加器必须累积.)

作者提到了几种使用不同编程语言的解决方案.例如,Common Lisp:

(defun foo (n)
  (lambda (i) (incf n i)))
Run Code Online (Sandbox Code Playgroud)

和JavaScript:

function foo(n) { return function (i) { return n += i } }
Run Code Online (Sandbox Code Playgroud)

但是,当涉及到Python时,以下代码不起作用:

def foo(n):
    s = n
    def bar(i):
        s += i
        return s
    return bar

f = foo(0)
f(1)  # UnboundLocalError: local variable 's' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

一个简单的修改将使其工作:

def foo(n):
    s = [n]
    def bar(i):
        s[0] += i
        return …
Run Code Online (Sandbox Code Playgroud)

python closures scope common-lisp local-variables

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

如果类具有引用成员,为什么将合成的复制赋值运算符定义为已删除?

在 C++ Primer,第五版,§13.1.6 中:

如果成员具有已删除或不可访问的复制赋值运算符,或者类具有 const 或引用成员,则合成复制赋值运算符被定义为已删除。

本章的解释:

尽管我们可以为引用分配一个新值,但这样做会更改引用所指对象的值。如果为这些类合成了复制赋值运算符,则左侧操作数将继续引用与赋值之前相同的对象。它不会引用与右侧操作数相同的对象。由于不太可能需要这种行为,因此如果类具有引用成员,则将合成的复制赋值运算符定义为已删除。

复制类会更改引用成员所引用的对象。这不是想要的吗?为什么解释说“不太可能需要”?

具体来说,

class A {
public:
    A(int &n) : a(n) {}
private:
    int &a;
};

int main() {
    int n = 1;

    A a(n);

    /* Why is this allowed? */
    A b(a);

    /*
    Why is this not allowed?
    error C2280: 'A &A::operator =(const A &)': attempting to reference a deleted function
    */
    b = a;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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