生成器和普通函数有些区别,比如生成器不用return返回,而用yield来返回一系列元素
除非“召唤”生成器的next(),否则函数体里面不会执行任何代码块,上下文环境保存着。
虽然不需要明确定义__iter__()和next()方法,但是它本身包含这个方法。
当想要结束一个协程时,使用close()方法即可,close会在协程中引发GeneratorExit异常,这时候可以通过try/ex...
分类:
编程语言 时间:
2014-05-10 09:53:34
阅读次数:
317
1. 函数可以返回多个值 return a, b, c; 但是如果函数不是作为表达式的最后一个元素的话,仅返回第一个
如:
function f2() return "a", "b" end;
x, y = f2() -> x = "a", y = "b";
x, y = f2(), 1 -> x = "a", y = nil;
2. 可以将一个函数调用放入一对圆括...
分类:
其他好文 时间:
2014-05-10 09:21:56
阅读次数:
317
Codeforces Round #244 (Div. 2)D (后缀自动机)
(标号为0的节点一定是null节点,无论如何都不能拿来用,切记切记,以后不能再错了)
这题用后缀自动机的话,对后缀自动机的很多性质有足够深刻的理解。没想过后缀数组怎么做,因为不高兴敲。。。。
题意:给出两个长度均不超过5000的字符串s1,s2,求这两个串中,都只出现一次的最短公共子串。
解题思路:求的是公共子...
分类:
其他好文 时间:
2014-05-10 09:17:40
阅读次数:
313
一个简单的迭代器示例
--迭代工厂函数
function value(t)
local i = 0;
return
function()
i = i+1;
return t[i];
end;
end;
t = {10,20,30};
iter = va...
分类:
其他好文 时间:
2014-05-10 08:36:53
阅读次数:
268
public class LinkedList {
Node head = null;
Node tail = null;
int length = 0;
public void add(Object object) {
Node node = new Node(object, null);
if (head == null) {
head = tail = nod...
分类:
其他好文 时间:
2014-05-07 08:24:17
阅读次数:
306
function FactoryXMLHttpRequest() {
if(window.XMLHttpRequest) {
return new XMLHttpRequest();
}else if(window.ActiveXObject) {
var msxmls = new Array(
'Msxml2.XM...
分类:
其他好文 时间:
2014-05-07 07:00:03
阅读次数:
382
实验目标:熟悉实体完整性,参照完整性,事务的处理;
/*1.在数据库school表中建立表Stu_uion,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录*/
Use school
create table stu_uion
(
sno char(5) not null unique,
sname char(8),
ssex char(1),
sage in...
分类:
数据库 时间:
2014-05-07 03:51:11
阅读次数:
381
从SVN下载项目后,我把项目名称改了一下然后启动tomcat后就一直报java.lang.IllegalArgumentException: Can't convert argument: null这个错。
解决办法是:第一步、将web.xml文件的头文件以javaee:开始的命名空间删除。如图:
第二步:将web.xml文件中所有javaee:替换成空白。如图:
重启tomcat,...
分类:
编程语言 时间:
2014-05-07 03:42:31
阅读次数:
421
#include
using namespace std;
//汉罗塔递归求解函数 从a移到c
void move(int m,char a,char c);
void hanoi(int n,char a,char b,char c)
{
if(1==n)
{
move(n,a,c);
return;
}
hanoi(n-1,a,c,b);
move(n,a,c);
hano...
分类:
其他好文 时间:
2014-05-07 03:24:14
阅读次数:
228
下图是一个创建好的链表
下面我们需要删除一个结点,例如删除第3个结点
首先定义一个指针p,并且将p指向第二个结点
然后定义一个指针q,将q指向需要删除的结点
将p指向的结点和q指向的结点相连
p->pNext = q->pNext
清空q指向的结点
free(q);
q = NULL;
删除后的链表
程序代码:
...
分类:
其他好文 时间:
2014-05-06 15:32:46
阅读次数:
325