PCgame 版 (精华区)

发信人: ghost (正在奋发中,wait), 信区: mud
标  题: lpc学习2
发信站: 听涛站 (Wed Jun 21 17:46:45 2000), 转信

17:53 00-6-21    LPC里面没有“指针”的概念。在变量名前面加 * 的定义表示数组。
如int *a
表示a 是整数数组。一般来说我们定义数组时是未知其大小的。所以定义时不用象
C 那样给定大小。数组和MAPPING有些类似,所以将在下面和MAPPING一起讲它们
的操作。
    object, 是OOP概念了,在LPC里面好象有CREATE()的都可以做object 类型变量
了。object 我们称为“对象”,在MUD里就是一件物品,一个房间或任何一个“具
体”的东西,都是OBJECT。“对象”,在OOP中是一些数据与基于这些数据的函数的
集合(好象文诌诌的? :PP)嗯,object 中的数据一般不能直接操作(至少在LPC
里面不能的 :PP),所以对object的操作只有赋值(对object类型的赋直 )和执行
object的函数( private函数不能被外部调用 )。
函数调用格式:
eg.     object ob;
        ob->test(1,2);
        基本格式: object类型变量名->函数名(函数参数列);
其中若该object 中未定义该函数名的函数则返回 0 值(呵呵,不会有出错信息的哦,

所以千万别写错名字了)。
    写了这么多终于写到LPC 最有特色的两个类型了,mapping和数组。
mapping和数组在“外观”上有些类似,所以在一起写了。前面提到过:mapping是
散列表,具体如何这里不详述了,只希望大家一定要记住mapping的格式!!( 实际
上这格式只在给变量赋初值时用到 )mapping 格式如下:
eg.     mapping a = ([ "ab" : 1 ,
                        "cd": 2 ,
                        ])
标准格式:
        mapping 变量名 = ([
                                key1 : value1 ,
                                key2 : value2 ,
                                ..........
                                ..........
                        ]);
其中key可以是除了int以外的任何值!! (好象char也不行吧 :P ),包括任何数组
甚至mapping也可以做key ,而value则可以是任意所有值。mapping的应用在于:
可以用key来index得到相应的value值。如上面eg的,我们有:a["cd"] == 2,....
因为要用key来index的关系,在mapping中key值不能相等,若相等则覆盖掉原来该
key对应的value。写的有些乱了,SORRY :P
    那么一个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/mappin
g
这一文件

--
我是沧海一小龙
游到东来游到西
找寻未知的东西
只求逍遥在人间
                         

※ 来源:.听涛站 cces.net.[FROM: 匿名天使的家]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.066毫秒