运行结果:
luu{... ...} 22 abc 3.5
4 函数说明
本例用到了Lu的10个输出函数:初始化Lu的函数InitLu,释放Lu的函数FreeLu,编译表达式的函数LuCom、计算表达式的函数LuCal、加锁键函数LockKey、注册C/C++函数的函数SetFunction、申请系统内置动态对象函数NewSysObj、插入键值的函数InsertKey、查找键值的函数SearchKey、按指定类型执行运算符重载函数ExeOperator。从这里查看这些函数的说明:Lu编程指南。
5 难点分析
在对Lu系统内置动态对象进行运算符重载时,需要:(1)用LockKey加锁一个键(本例为key_luu),但不需要向Lu系统注册任何键值;(2)删除键值的函数(本例为Del_luu)定义为空函数;(3)定义运算符重载函数(本例为OpLock_luu)。
值得一提的是,使用申请系统内置动态对象函数NewSysObj很方便,不仅高效,而且返回的对象已注册到了Lu键树中,不需要自己再进行注册。使用按指定类型执行运算符重载函数ExeOperator也很方便,免去了自己的编码之苦。
(1)如果修改代码中的字符串表达式为(注意C/C++字符串中转义字符 \" 的使用,下同):
main(:a,i)= a=new[luu,3 : 22, "abc",3.5], o[a], i=-1,while{++i
可得到如下结果:
luu{... ...} 22 abc 3.5
(2)如果修改代码中的字符串表达式为:
main(:a,i)= a=luu[22, "abc",3.5], a=55+a+"asd", o[a], i=-1,while{++i
可得到如下结果:
luu{... ...} 55 22 abc 3.5 asd
6 其他
你可能注意到了,我的联系方式就在下面,如有不明之处或有什么建议,可随时与我进行联系。
版权所有 Lu程序设计 2002-2013,保留所有权利
E-mail: forcal@sina.com QQ:630715621
最近更新: 2014年01月05日