Perl简介

零、好习惯

use diagnostics;输出详细的警告信息,不常用  
可这样交换两个变量($a, $b) = ($b, $a)  
使用 use bignum 保证数值运算不会丢失精度,此声明可在局部使用,不常用  
Orcish Maneuver 标记 ||= 在判断数字0时有问题,多用unless defined...
例如$opt{i} ||= 1 这行命令,会在设置$opt{i}为0时,仍然设置$opt{i}为1,因为||操作符的原因
使用qq来标记字符串,用qw来标记字符串列表,避免将双引号转义
使用三个参数的open文件打开操作,更安全且允许文件名中出现空格
在同时有输入和输出的程序中,可在完成输入文件的操作后,进行unlink输出文件,再对输出文件进行操作,这样便能支持输入和输出为同一个文件的情况
$CR $LF $CRLF三个常量表示各个操作系统内的文件行分隔符
windows下最好不要安装perl在包含空格路径的目录下

继续阅读全文 »

Java

要想创建一个接口,需要使用interface关键字来替代Class关键字。就像类一样,可以在interface关键字前面添加public关键字,如果不添加此关键字,则它只具有包访问权限,这样它只能在同一个包内可用。接口也可以包含域,但是这些域隐式的是static和final。
要让一个类遵循某个特定的接口(或者一组接口),需要使用implements关键字,它表示:interface只是它的外貌,但是我现在要声明它是如何工作的。一旦实现了某个接口,其实现就变成了一个普通的目标,就可以按照常规的方式扩展它。接口中的方法是public的。

书单

以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉。
都是java web开发的程序员可能接触的书,其他的如设计/手机开发/其他语言的书就不写了,因为自己只做过java web开发,那些书没什么资格评判。
因为不是每本书都翻开确定一下再写的,可能有张冠李戴或记忆错误的情况,如发现了请指正。
如有好书我这里没列举到的,请补充。此书单将持续完善。

继续阅读全文 »

ES6 ES7

Class语法

1
2
3
4
5
6
7
8
9
// ES5 构造函数生成对象
function Point(x,y)J{
this.x=x;
this.y=y;
}
Point.prototype.toString = function(){
return '('+ this.x+','+this.y+')';
};
var p=new Point(1,2);

ES6则通过Class语法,constructor为构造方法,this关键字为实例对象.ES5的构造函数对应ES6的Point类的构造方法. ES6的类可以看成是构造函数的另一种写法.类的所有方法都定义在类的prototype属性上面.类的内部定义的方法,都是不可枚举的.这一点与ES5的行为不一致.

继续阅读全文 »

数据结构与算法

本文为一些算法的实现,以C++/C 为编程语言。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 头插法建立双链表
void CreateListF(DLinkList *&L,ElemType a[],int n){
DLinkList * s;
int i;
L = (DLinkList *)malloc(sizeof(DLinkList));
L->prior=L->next=NULL;
for(i=0;i<n;i++){
s = (DLinkList *)malloc(sizeof(DLinkList));
s->data=a[i];
s->next=L->next;
if(L->next!=NULL){
L->next->prior=s;
}
L->next=s;
s->prior=L;
}
}

继续阅读全文 »