我认为这是D提供的又一个重量级的功能.闲言少叙,代码说话!
保存为cre.d,使用dmd cre.d编译.
module cre;
import std.stdio;
interface IPrinter
{
void print();
void init(char[] a);
}
class foo :IPrinter
{
void print()
{
writefln("foo OK "~fb);
}
void init(char[] a)
{
fb = " Hollo "~ ...
自从去年看到D后,就深深的被D迷上了.静态类型,本地代码,快速编译,垃圾收集,直接访问C,单元测试,契约编程...太多的特性,并且每个特性都让我为之心动.我喜欢解决问题,更喜欢找到解决问题的方法.工欲善其事吗.看到D这个编程利器后,我几乎天天都在学习D.每天用D编写一段程序,每天看看D的新闻,每天要访问Javaeye的DLang圈子. 看到更多的朋友关注D,学习D,加入D的组织,心里非常高兴. 高兴之余,掩卷沉思,我们在学习D这个利器的时候,找到学习的最后方法了吗?我已经使用了半年D,抛个砖头:
1.开始尝试D.多年的工作和学习,我想大家都积累了学习的方法吧!但学D ...
汉诺塔,一个古老的问题,递归算法,在讲栈数据结构加深理解的例子.今天重新回顾了一下.
import std.stdio;
int mc=0;
void move(char x,int n,char z)
{
printf("%i Move disk %i from %c to %c \n",++mc,n,x,z);
}
void hanoi(int n,char x,char y,char z)
{
if(n==1)
move(x,1,z);
else{
hanoi(n-1,x,z,y);
move(x,n,z);
...
部分内容来自wiki4D.
module regexp;
import std.stdio : writefln;
import std.regexp;
import std.c.stdio;
bool isalpha(char[] c)
{
RegExp myRegExp;
myRegExp = new RegExp("^[a-zA-Z_]+$", "");
return cast(bool) myRegExp.test(c);
}
bool isspace(char[] c)
{
/* true if c is whi ...
正则表达式是个好东西,就是有些复杂.在验证输入,字符串查找,处理上确实很方便.
30分钟教程http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
D可使用的表达式:http://www.digitalmars.com/ctg/regular.html
常用的元字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结
常用的限定符
* 重复零次或更多次
+ ...
Observer设计模式
类型:行为型
意义: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
适用:当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。
当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。
当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望这些对象是紧密耦合的。
D的Phobos库std.signals实现了这个模式.
也可利用委托来简单实现.
DFL的事件委托分派机制就是个Observer模 ...
引言 语言的进步,可以简化设计模式的实现.
Singleton模式
类型:创建型
意义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
1.D的实现
一个类的实现
class Singleton
{
public:
static Singleton opCall()
{
if(_instance is null) _instance = new Singleton;
return _instance;
}
protected void init(){}
private:
this() {th ...
DFL中的事件订阅(module dfl.event,dfl.control)
一.EventArgs类: 事件参数祖先,传递事件的参数组合,可以进行继承实现更多的参数.
二.Event 模版
1.接受两个模版参数,
2.重载了操作符:
opCatAssign ~ 增加.
opCall 调用
opApply foreach调用
三.例子
---------------------------------------------------------------------
控件本身:
1.声明可以订阅事件
Event!(Control, EventArgs) click;
2. ...
DMD1.007 仅仅支持32位linux,windows.
GDC now supports 64-bit targets! A new x86_64 Linux binary is
available and the MacOS X binary supports x86_64 and ppc64.
http://sourceforge.net/project/showfiles.php?group_id=154306
Changes:
* Added support for 64-bit targets
* Added multilib support
* Upd ...
- 浏览: 114201 次

- 详细资料
搜索本博客
最新评论
-
ANSI和Unicode练习后记
要在dfl的listview控件里显示来自mysql的中文字符。 怎么出错了,提 ...
-- by wandernet -
D语言设计模式 Observer
好文!学习
-- by hqs7636 -
ANSI和Unicode练习后记
新年快乐!
-- by oldrev -
ANSI和Unicode练习后记
支持一个!新年快乐!
-- by DavidL -
D语言的IOCP(完成端口) ...
"iocp的使用例子(哪怕是C方式的)在dsource上都找不到一个,仅此一条i ...
-- by ahadf






评论排行榜