LPC就是我们用来写MUD的语言啦，它的语法和C 基本一样。它独特之处在于有简单的
OOP特性(简单但很有用:PP)，还有一个C里面没有的HASH表的类型：MAPPING
LPC和C还有一个不同是其主函数是CREATE()而不是MAIN()。create()别写错哦:PP

    LPC里面主要的(也是写MUD所足够的)数据类型有int,string,mapping,object,
mixed。下面主要讲一下这些类型了。

    因为整数类型对于写MUD已经足够，所以不用FLOAT了。同样的，因为我们的
汉字是双字节的，所以CHAR类型其实也没用，只需要STRING 类型就可以了。
STRING的定义，这里要提一下：string常量的赋值，假如是常量的话可以只用
“连接”的办法代替string，例如:
        string str = "我" "们" ;那么结果是str == "我们"
同样的str =
                "我"
                "们";也是一样，空格与换行在LPC编译时是被忽略的，所以我们
写MUD的时侯不仿多些TAB和换行，这样程序容易看些。
当然，除了直接连接之外还可以用 + 连接。在有变量的时侯就要用了。例如：
        string str0 = "我们";
        string str1 = "和"+str0+"大家";
        结果是str1 == "和我们大家"

    mixed是一个比较特别的类型。mixed 类型的变量可以赋任何其他类型的值。
这在未知变量类型的时侯非常有用。不过一般情况下很少会用到mixed。

    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/mapping
这一文件

