我已经在聊天应用程序上使用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
我正在教我的自我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代替
这个的基本原理是什么?
我发现了相关问题,但我真的不知道它们是否大致相同
如果条件存在,我希望更改存储过程.如果条件不满足,我想保留存储过程,因此drop/create实际上不是一个选项.
试图将ALTER PROC的内容放在IF块中会给我带来错误.有什么想法吗?
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数组及其元素
如何创建自定义的javadoc标签,例如@pre/@post?我发现了一些解释它的链接,但我没有运气.这些是一些链接:
http://www.developer.com/java/other/article.php/3085991/Javadoc-Programming.html
http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javadoc.html
似乎Gmail刚刚启动此功能,它不需要您安装任何插件等.
它适用于Firefox和Chrome,但不适用于IE.
正如标题所说我试图做一个简单的插入,但实际上没有插入表中.我尝试打印错误,但没有报告.
我的用户表有比这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列.
我已经将UITableViewCell子类化了,在这个类中我希望得到它的高度.我怎样才能做到这一点?
我试过了:
self.frame.size.height
Run Code Online (Sandbox Code Playgroud)
但不确定它是否给我正确的身高值.
我正在尝试为我的类存储数据创建更有用的调试消息.我的代码看起来像这样
#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)"之类的东西.
你知道什么是错的吗?
我只是想研究使用HTML Purifier来确保用户输入的字符串(代表一个人的名字)被清理.
我不想允许任何html标签,脚本,标记等 - 我只想要alpha,数字和普通的标点字符.
可用于HTML Purifier的大量选项令人生畏,据我所知,文档似乎没有开始/中间或结束
见:http://htmlpurifier.org/docs
HTML Purifier是否有一个简单的hello world教程,它显示了如何清除字符串,从中删除所有不良内容.
我也在考虑使用条带标签:
或PHP在内置数据清理中
c++ ×2
javascript ×2
php ×2
cocoa-touch ×1
gmail ×1
html5 ×1
insert ×1
iphone ×1
java ×1
javadoc ×1
jquery ×1
mysql ×1
mysqli ×1
node.js ×1
objective-c ×1
pointers ×1
python ×1
qt4 ×1
rationale ×1
sanitization ×1
scope ×1
sql-server ×1
t-sql ×1
uitableview ×1
user-input ×1
validation ×1