2007-03-27

D语言动态创建对象-D最新功能

关键字: D最新功能 动态创建 插件 IOC
我认为这是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 "~ ...
2007-03-25

D语言学习方法

关键字: D学习方法
自从去年看到D后,就深深的被D迷上了.静态类型,本地代码,快速编译,垃圾收集,直接访问C,单元测试,契约编程...太多的特性,并且每个特性都让我为之心动.我喜欢解决问题,更喜欢找到解决问题的方法.工欲善其事吗.看到D这个编程利器后,我几乎天天都在学习D.每天用D编写一段程序,每天看看D的新闻,每天要访问Javaeye的DLang圈子. 看到更多的朋友关注D,学习D,加入D的组织,心里非常高兴. 高兴之余,掩卷沉思,我们在学习D这个利器的时候,找到学习的最后方法了吗?我已经使用了半年D,抛个砖头: 1.开始尝试D.多年的工作和学习,我想大家都积累了学习的方法吧!但学D ...
2007-03-25

递归解决Hanoi汉诺塔

关键字: D语言 Hanoi 汉诺塔
汉诺塔,一个古老的问题,递归算法,在讲栈数据结构加深理解的例子.今天重新回顾了一下. 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); ...
2007-03-14

D语言的正则表达式例子

关键字: 正则表达式
部分内容来自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 ...
2007-03-13

正则表达式学习

关键字: 正则表达式
正则表达式是个好东西,就是有些复杂.在验证输入,字符串查找,处理上确实很方便. 30分钟教程http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm D可使用的表达式:http://www.digitalmars.com/ctg/regular.html 常用的元字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结 常用的限定符 * 重复零次或更多次 + ...
2007-03-07

D语言设计模式 Observer

关键字: 设计模式 observer
Observer设计模式 类型:行为型 意义: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。 适用:当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。 当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。 当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望这些对象是紧密耦合的。 D的Phobos库std.signals实现了这个模式. 也可利用委托来简单实现. DFL的事件委托分派机制就是个Observer模 ...
2007-03-07

D语言设计模式 Singleton

关键字: 设计模式 D Singleton
引言 语言的进步,可以简化设计模式的实现. Singleton模式 类型:创建型 意义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 1.D的实现 一个类的实现 class Singleton { public: static Singleton opCall() { if(_instance is null) _instance = new Singleton; return _instance; } protected void init(){} private: this() {th ...
2007-03-07

DFL框架分析(二) 事件订阅

关键字: DFL 事件 订阅 设计模式 观察者
DFL中的事件订阅(module dfl.event,dfl.control) 一.EventArgs类: 事件参数祖先,传递事件的参数组合,可以进行继承实现更多的参数. 二.Event 模版 1.接受两个模版参数, 2.重载了操作符: opCatAssign ~ 增加. opCall 调用 opApply foreach调用 三.例子 --------------------------------------------------------------------- 控件本身: 1.声明可以订阅事件 Event!(Control, EventArgs) click; 2. ...
2007-03-06

GDC0.23发布,支持64位!!!

关键字: 64位
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 ...
ideage
搜索本博客
最近加入圈子
存档
最新评论