找回密码
 注册
搜索
查看: 2061|回复: 0

→ LPC语言(中) →

[复制链接]
门派:不明
发表于 2008-5-23 04:39:55 | 显示全部楼层 |阅读模式
原文由 btulip 所发表 】


    object, 是OOP概念了,在LPC里面好象有CREATE()的都可以做object 类型变量了。
object 我们称为“对象”,在MUD里就是一件物品,一个房间或任何一个“具体”的东
西,都是OBJECT。“对象”,在OOP中是一些数据与基于这些数据的函数的集合(好象文
诌诌的? P)嗯,object 中的数据一般不能直接操作(至少在LPC里面不能的 P)
,所以对object的操作只有赋值(对object类型的赋直 )和执行object的函数( priva
te函数不能被外部调用 )。
函数调用格式:
object ob;
ob->test(1,2);
基本格式: object类型变量名->函数名(函数参数列);其中若该object 中未定义该函数
名的函数则返回 0 值(呵呵,不会有出错信息的哦?所以千万别写错名字了)。
    写了这么多终于写到LPC 最有特色的两个类型了,mapping和数组。mapping和数组
在“外观”上有些类似,所以在一起写了。前面提到过:mapping是散列表,具体如何这
里不详述了,只希望大家一定要记住mapping的格式!!( 实际上这格式只在给变量赋初


值时用到 )
mapping 格式如下:
mapping a = ([ "ab" : 1 ,"cd": 2 ,])
标准格式:
mapping 变量名 = ([key1 : value1 ,key2 : value2,....................]);其中k
ey可以是除了int以外的任何值!! (好象char也不行吧 ),包括任何数组甚至mapp
ing也可以做key ,而value则可以是任意所有值。mapping的应用在于:可以用key来ind
ex得到相应的value值。如上面eg的,我们有:a["cd"] ==2,....因为要用key来index的
关系,在mapping中key值不能相等,若相等则覆盖掉原来该key对应的value。写的有些
乱了,SORRY 那么一个mapping怎么改变它的值呢?有两个方法(下面设mapping map
)。
1. map[key] = value;
2. map += ([key : value ]);
请大家留意第二种赋值方法,它跟我们将要提到的数组的方法一样的 。
    在mapping中“删除”一个key (其相应value当然也没了)方法是:
map_delete(map,key);
lpc里面的系统函数(efun)的命名一般按参数顺序来取名( map_delete的参数就是map在
前,被delete的key在后的 ),希望大家注意。
另外mapping的efun还有values,keys,undefinedp大家可以直接在MUD里 help efunname
来看帮助,也可以参阅/doc/lpc/types/mapping这一文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-5-1 08:29 , Processed in 0.023954 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表