小编qxu*_*u21的帖子

通过refence javascript传递原始变量

我试图通过引用传递原始变量.

var foo = 2;
function inc (arg) {
    arg++
}
inc(foo) //won't increment foo
Run Code Online (Sandbox Code Playgroud)

上述方法不起作用,因为在JavaScript中,基元(如数字)通过值传递,而对象通过引用传递.为了通过引用传递基元,我们需要将它们声明为对象:

var foo = new Number(2)
function inc (arg) {
    arg++
}
inc(foo) //increments foo
Run Code Online (Sandbox Code Playgroud)

这似乎是一个非常hacky的解决方法,可能会伤害执行速度.在其他OO语言中,我们可以将"指针"或"引用"传递给函数.JS中有这样的东西吗?谢谢!

javascript reference function node.js

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

IntegerField 不验证空字符串

我发现 IntegerField 在为空时不会验证。要重现,请复制以下块:

from flask import Flask, render_template_string
from flask_wtf import FlaskForm
from wtforms import IntegerField

app = Flask(__name__)
app.config['WTF_CSRF_ENABLED'] = False

class DemoForm(FlaskForm):
    demofield = IntegerField('demofield')

@app.route('/', methods=("GET","POST"))
def index():
    form = DemoForm()
    if form.validate_on_submit():
        return ("The form validated!")
    return render_template_string("<!DOCTYPE HTML> This is my form! <form method=\"post\">{% for field in form %}{{field}}{% endfor %}<input type=\"submit\">", form=form)

app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

并将其保存在自己的目录中作为 app.py。然后打开终端,cd 到目录,然后运行以下命令:

virtualenv flask
source flask/bin/activate
pip install flask flask-wtf
export FLASK_APP=app.py
python3 app.py
Run Code Online (Sandbox Code Playgroud)

在 Web 浏览器中连接到 localhost:5000。在表单字段中输入一个整数并提交将显示“表单已验证!” 在字段中输入不是整数的内容,或将字段留空 …

wtforms flask-wtforms

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

我是否必须为 C++ 中的派生类编写相同的构造函数?

我正在制作一个国际象棋游戏,并且正在布置课程。有一个基本的 Piece 类,并从它继承单独的 Rook、Bishop、Knight、Pawn、King 和 Queen 类是有意义的。构造函数需要的唯一参数是一个布尔“所有者”值(它将是基类的成员):对于玩家为 true,对于 AI 为 false。我认为对象应该像这样实例化:

//create a Rook owned by the player
Rook exampleRook = new Rook(true);
//create a Knight owned by the AI
Knight exampleKnight = new Knight(false);
Run Code Online (Sandbox Code Playgroud)

看来我必须在每个派生类中执行类似的操作:

Rook(bool owner) {
    this->owner = owner;
}
Run Code Online (Sandbox Code Playgroud)

这似乎违反了继承的整个原则:在基类中编写一次代码,然后继承。我可能必须在基类中编写 setOwner() 函数,但在构造函数中而不是在单独的函数(可以再次调用)中设置所有者似乎更有意义。

c++ inheritance

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