小编the*_*eva的帖子

如何在 let 语句中使用 if 语句?

我希望这个工作:

fun function (i) =
   let 
       if i = 1 then
           val h = valOf(Int.fromString(valOf(TextIO.inputLine TextIO.stdIn)))
       else
           val h = someFunction();
   in

       code...
   end
Run Code Online (Sandbox Code Playgroud)

但似乎你不能声明这样的值......我应该怎么做才能让它工作?

sml

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

多个头文件到一个源文件?

我有一个名为source.c的源文件和一个名为source.h的公共头文件.source.c包含s

#include "source.h"
Run Code Online (Sandbox Code Playgroud)

我不希望source.c中的所有函数都是公共的,因此我想要另一个名为priv_source.h的头文件,它引用source.c中的一些私有函数.

编译器是否理解priv_source.h也是source.c的头文件,还是我必须创建另一个名为priv_source.c的c文件?

c header-files

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

为什么POST数据应该嵌套?

我使用Rails作为API服务器,我想知道为什么发送到服务器的数据需要嵌套.这似乎是定义params的首选方式:

def user_params
  params.require(:user).permit(:first_name, :last_name, :password, :username, :email)
end
Run Code Online (Sandbox Code Playgroud)

这将是发送到创建路由的相应JSON:

{
    "user": {
        "username": "lorem",
        "first_name": "ipsum",
        "last_name": "dolor",
        "password": "sit",
        "email": "amet"
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么这是发布数据的首选方式?为什么JSON不能:

{
    "username": "lorem",
    "first_name": "ipsum",
    "last_name": "dolor",
    "password": "sit",
    "email": "amet"
}
Run Code Online (Sandbox Code Playgroud)

json ruby-on-rails

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

C函数,使用指针代替返回

我有这个功能:

void update(int something, int nothing) {
    something = something+4;
    nothing = 3;
}
Run Code Online (Sandbox Code Playgroud)

然后是函数调用:

int something = 2;
int nothing = 2;

update(something, nothing);
Run Code Online (Sandbox Code Playgroud)

在函数内部,有些东西是6,没有东西是3,但因为我们不返回任何东西,所以值不会改变.

对于一个值,我可以使用函数的返回值,但现在我认为我必须使用指针,对吧?

我想要从函数返回的东西和什么都没有,所以我可以在函数调用后使用新的值,我该怎么做?:)

c pointers

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

确定平均值

我必须计算模拟的平均值.模拟正在进行中,我希望(每次迭代)打印当前的平均值.我怎么做?

我尝试了下面的代码(在循环中),但我认为没有计算出正确的值...

int average = 0;
int newValue; // Continuously updated value.

if(average == 0) {
    average = newValue;
}

average = (average + newValue)/2;
Run Code Online (Sandbox Code Playgroud)

我还教过将每个newValue存储在一个数组中,并且每次迭代都会汇总整个数组并进行计算.但是,我不认为这是一个很好的解决方案,因为循环是一个无限循环,所以我无法确定数组的大小.

还有一种可能性,我想的太多,上面的代码实际上是正确的,但我不这么认为......

java math

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

为什么我会"解除指向不完整类型的指针"?

我不明白为什么我会收到这个错误.我试过谷歌,但我认为我的代码似乎正确...主要我有这个:

Database *database;
database = (Database *)malloc(db_sizeOfStruct());

database->key = "word";
Run Code Online (Sandbox Code Playgroud)

在我的模块文件中,我有这个:

typedef struct database {
     char key;
     char value;
     struct database *next;
} Database;

int db_sizeOfStruct() {
    return sizeof(struct database);
}
Run Code Online (Sandbox Code Playgroud)

编译器给出"解除指向不完整类型的指针",为什么?我试图理解指针,我认为它可能是关于它们的东西......

c struct pointers

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

这个typedef是如何工作的?

我看到这行代码,我不明白什么是typedef:ed where ...

typedef void *(*SomeType)(OtherType mem, thirdtype size);
Run Code Online (Sandbox Code Playgroud)

那么,我该如何使用它呢?

c typedef

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

如何创建内存泄漏?

我想在堆上分配一些无法从任何堆栈指针访问的内存.(这是出于测试目的).

void *ptr = malloc(sizeof(int));
void *ptr2 = malloc(sizeof(int));

ptr = ptr2;
Run Code Online (Sandbox Code Playgroud)

如果我执行此代码,我认为ptr和ptr2在开始时是堆栈上的两个指针,指的是堆上的一些已分配的内存,对吧?然后当我执行ptr = ptr2时,第一个mallocated内存仍然在堆上但不能以任何方式从堆栈中到达.是这样吗?

我有一个程序正在搜索堆栈以查找堆上的所有活动对象,因此我想测试它实际上是否有效.

c memory-leaks

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

spawn_link正在启动一个无限循环,但不会返回?

我有一个init函数,我称之为start_server:

start_server() ->
    spawn_link(game_loop(0,0)).
Run Code Online (Sandbox Code Playgroud)

目的是启动一个新进程,开始循环并等待某人在那里发送消息:

game_loop(X,Y) ->
receive
{move, left} ->
    tell_client(X+1,Y),
    game_loop(X+1,Y);

{move, right} ->
    tell_client(X-1,Y),
    game_loop(X-1,Y)
end.
Run Code Online (Sandbox Code Playgroud)

我的原因是start_server会返回Pid,这样我就可以在Erlang终端中写出这样的东西:

> Server = server:start_server().
Run Code Online (Sandbox Code Playgroud)

然后使用变量Server通过以下功能处理服务器:

move_left(Pid) ->
    Pid ! {move, left}.
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,因为start_server()永远不会返回,为什么呢?

erlang spawn

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

Python程序似乎运行了两次

我有一个正在运行 Flask 的 python 程序。我注意到一个奇怪的事情,看起来该程序运行了两次,这是我不希望的。

这是启动程序的文件(runserver.py,位于根文件夹/):

from myapp import app

if __name__ == "__main__":
    print "woho"
    app.run(host='0.0.0.0',debug=True)
Run Code Online (Sandbox Code Playgroud)

运行这个程序时,我可以在终端中看到两个“woho”,表明有些事情很奇怪。

在文件夹 /myapp 中我有 __init__.py:

from flask import Flask

app = Flask(__name__) 

import myapp.views
Run Code Online (Sandbox Code Playgroud)

然后在我的views.py(也在/myapp中)我有所有的视图,例如:

from myapp import app
from flask import render_template

@app.route('/')
def index():
    return render_template('index.html')
Run Code Online (Sandbox Code Playgroud)

python flask

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

将表单数据直接传递给SQLalchemy对象?

我正在使用带有WTForms和SQLAlchemy的Flask.我目前有这个设置:

一个SQLAlchemy类:

class User(Base):
    __tablename__ = 'user'
    name = db.Column(db.String)
    last_name = db.Column(db.String)

    __init__(name, last_name):
        self.name = name
        self.last_name = last_name
Run Code Online (Sandbox Code Playgroud)

相应的表格:

class CreateUserForm(Form):
    name = StringField('Name')
    last_name = StringField('Last name')
Run Code Online (Sandbox Code Playgroud)

路线:

@user.route('/', methods=['POST'])
def create():
    form = CreateUserForm(request.form)

    if form.validate():
        user = User(form.name.data, form.last_name.data)
        ...
Run Code Online (Sandbox Code Playgroud)

这只是一个简化的例子,但我想知道的是,如果我能以某种方式将表单变量传递给User构造函数并一直传递给SQLAlchemy中的User类?由于构造函数中的表单与用户数据库表中的字段相同,因此它会很好.

我希望我的路线看起来像这样:

@user.route('/', methods=['POST'])
def create():
    form = CreateUserForm(request.form)

    if form.validate():
        user = User(form)
        ...
Run Code Online (Sandbox Code Playgroud)

所以我不必在每个部分中处理form.name和form.last_name.

sqlalchemy flask wtforms

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

从Flask-Migrate管理器运行应用程序

我使用这些行来启动我的应用程序:

from app import app
app.run(host='0.0.0.0', port=8080, debug=True)
Run Code Online (Sandbox Code Playgroud)

使用Flask-Migrate,我改为:

from app import manager
manager.run()
Run Code Online (Sandbox Code Playgroud)

manager.run不会采用相同的参数app.run,如何定义主机和端口?

python flask flask-migrate flask-script

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