问题列表 - 第25383页

如何构建基于函数式编程的JavaScript应用程序?

我已经在聊天应用程序上使用node.js了一段时间(我知道,非常原创,但我认为这是一个很好的学习项目).Underscore.js提供了许多看起来很有趣的函数式编程概念,所以我想了解如何设置JavaScript中的函数式程序.

根据我对函数式编程的理解(这可能是错误的),整个想法是避免副作用,这些副作用基本上都有一个函数来更新函数之外的另一个变量,所以像

var external;
function foo() {
   external = 'bar';
}
foo();
Run Code Online (Sandbox Code Playgroud)

会产生副作用,对吗?因此,作为一般规则,您希望避免在全局范围内扰乱变量.

好的,那么当你处理对象时它是如何工作的呢?例如,很多时候,我将有一个构造函数和初始化对象的init方法,如下所示:

var Foo = function(initVars) {
   this.init(initVars);
}

Foo.prototype.init = function(initVars) {
   this.bar1 = initVars['bar1'];
   this.bar2 = initVars['bar2'];
   //....
}

var myFoo = new Foo({'bar1': '1', 'bar2': '2'});
Run Code Online (Sandbox Code Playgroud)

所以我的init方法是故意造成副作用,但是处理相同情况的功能方法是什么?

此外,如果有人可以指向我尝试尽可能功能的程序的Python或JavaScript源代码,那也将非常感激.我觉得我接近"得到它",但我只是不在那里.主要是我对函数式编程如何与传统的OOP类概念一起工作感兴趣(或者如果出现这种情况的话,可以将其用于不同的东西).

javascript functional-programming serverside-javascript node.js underscore.js

29
推荐指数
2
解决办法
5200
查看次数

python变量范围

我正在教我的自我python,我正在将一些示例代码翻译成这个

class Student(object):
    def __init__( self, name, a,b,c ):
        self.name = name
        self.a = a
        self.b = b
        self.c = c

    def average(self):
        return ( a+b+c ) / 3.0 
Run Code Online (Sandbox Code Playgroud)

这几乎是我想要的课程定义

稍后在main方法中我创建一个实例并调用它 a

if __name__ == "__main__" :
    a = Student( "Oscar", 10, 10, 10 )
Run Code Online (Sandbox Code Playgroud)

这就是我如何找出变量a中声明main可用的方法average ,并使该方法的工作,我必须键入 self.a + self.b + self.c代替

这个的基本原理是什么?

我发现了相关问题,但我真的不知道它们是否大致相同

python scope rationale

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

如果满足条件,则更改存储过程

如果条件存在,我希望更改存储过程.如果条件不满足,我想保留存储过程,因此drop/create实际上不是一个选项.

试图将ALTER PROC的内容放在IF块中会给我带来错误.有什么想法吗?

t-sql sql-server stored-procedures

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

指针数组

char *a[]={"diamonds","clubs","spades","hearts"};
char **p[]={a+3,a+2,a+1,a};
char ***ptr=p;
cout<<*ptr[2][2];
Run Code Online (Sandbox Code Playgroud)

为什么它显示h并请解释ptr实现的2d数组及其元素

c++ pointers

0
推荐指数
2
解决办法
208
查看次数

26
推荐指数
2
解决办法
2万
查看次数

如何将文件附件拖放到浏览器中?

似乎Gmail刚刚启动此功能,它不需要您安装任何插件等.

它适用于Firefox和Chrome,但不适用于IE.

javascript jquery html5 gmail drag-and-drop

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

PHP mysqli插入不工作,但没有给出任何错误

正如标题所说我试图做一个简单的插入,但实际上没有插入表中.我尝试打印错误,但没有报告.

我的用户表有比这4个更多的字段,但它们都应该默认.

$query = 'INSERT INTO users (username, password, level, name) VALUES (?, ?, ?, ?)';
if($stmt = $db -> prepare($query))
{
    $stmt -> bind_param('ssis', $username, $password, $newlevel, $realname);
    $stmt -> execute();
    $stmt -> close();
    echo 'Any Errors: '.$db->error.PHP_EOL;
}
Run Code Online (Sandbox Code Playgroud)

没有给出错误,但是当我在phpmyadmin中查看表时,没有添加新行.我确信这些类型是正确的(字符串和整数).这里有什么问题,或者它与我忽略其他列的事实有关.我在用户表中有大约8列.

php mysql mysqli insert

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

如何获得UITableViewCell的总高度?

我已经将UITableViewCell子类化了,在这个类中我希望得到它的高度.我怎样才能做到这一点?

我试过了:

self.frame.size.height
Run Code Online (Sandbox Code Playgroud)

但不确定它是否给我正确的身高值.

iphone cocoa-touch objective-c uitableview

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

如何重载operator << for qDebug

我正在尝试为我的类存储数据创建更有用的调试消息.我的代码看起来像这样

#include <QAbstractTableModel>
#include <QDebug>

/**
  * Model for storing data. 
  */
class DataModel : public QAbstractTableModel {
    // for debugging purposes
    friend QDebug operator<< (QDebug d, const DataModel &model);

    //other stuff
};

/**
  * Overloading operator for debugging purposes
  */
QDebug operator<< (QDebug d, const DataModel &model) {
    d << "Hello world!";
    return d;
}
Run Code Online (Sandbox Code Playgroud)

我希望qDebug() << model打印出"Hello world!".但是,输出总是有"QAbstractTableModel(0x1c7e520)"之类的东西.

你知道什么是错的吗?

c++ qt4 operator-overloading

19
推荐指数
4
解决办法
2万
查看次数

PHP - HTML Purifier - hello w <o> rld/world tutorial striptags

我只是想研究使用HTML Purifier来确保用户输入的字符串(代表一个人的名字)被清理.

我不想允许任何html标签,脚本,标记等 - 我只想要alpha,数字和普通的标点字符.

可用于HTML Purifier的大量选项令人生畏,据我所知,文档似乎没有开始/中间或结束

见:http://htmlpurifier.org/docs

HTML Purifier是否有一个简单的hello world教程,它显示了如何清除字符串,从中删除所有不良内容.

我也在考虑使用条带标签:

或PHP在内置数据清理中

php validation sanitization user-input

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