3.4 一些简单的数据类型 在Lpc入门里面将介绍以下的数据类型: void, int, float, string, object, 以及mixed. 对于复杂的数据 类型比如: mapping, array, 以及一些不常用的类型比如: class, function, 我将在Lpc进阶介绍. 这一节我们主要介绍三种数据类型: int(整型), float(浮点数)和string(字符串). 一个int(整型)是一个整数, 比如1, 42, -18, 0, -10002938这些 都是整型. 在MudOS中一个整型是一个32位的整数, 有符号的整数. 在实际中int得到广泛的使用, 比如开始介绍变量中的wiz_level, 再比如生物的天赋, 年龄等都通常都是int(整型). 一个float(浮点数)是一个实数, 比如2.034, -102.3453, 0.0, 1132741034.33这些都是一个浮点数. 在MudOS中一个浮点数也是一个 32位的实数, 有符号的实数. float通常不常用. 在Object的数值性质中, 我们通常也就使用int和float, 甚至只用 int, 在变量的初始化中int和float自动被赋为0. 但是一般的Driver 比如MudOS不检查数值越界的情况, 还要注意的是这里的int和float 都是有符号的数, 这两点要注意. string(字符串)是由一或更多的字符组成, 比如"a", "我是飞鸟!", "42", "飞鸟15岁.", "I am Trill.", 这些都是字符串. 注意的是, 字符串都是被""括起来, 这样第一能区别象int(整型)42和string(字 符串)"42", 第二可以区别变量名(比如 room)和同名的字符串(比如 "room"). string类型的变量在初始化时, 如果没有显式的赋于一个 字符串比如: 空字符串"", 那将是0, 就是一空的指针. 作为最基本的数据类型int, float和string, 是一些复杂的数据 类型的基础. 对这些数据进行运算和操作的操作符, 将在后面介绍, 不过Lpc的操作符和一般的C/C++的操作符一致. 只是有一点, 就+ Lpc支持string和int或者float直接相加, 比如我们上面提到的: write(x + "\n"); "\n"是一个字符, x是一个整型的变量, 在Lpc解释执行中, 自动将 x代表的数值转化成一个字符串, 然后把两个字符串接在一起. 当你在编程中使用一个变量, 你必须首先让Driver知道这个变量 代表什么样的数据类型. 这个过程叫做变量声明. 这必须在一个函 数或者一个Object的开始部分进行变量声明. 怎么做呢阿? 就是把 数据类型的名字放在你所要用的变量名前面, 举个例子: ----- void add_x_and_y() { int x; int y; x = 2; y = x + x * x; } ---- 上面就是一个完整的函数. 函数名就是add_x_and_y(). 在这个函数中 一开始声明落两个变量x, y都是int. 下面介绍MudOS支持的数据类型: int 一个整数(32位). float 一个浮点数(32位). string 无限长的字符串. object 指向一个对象的指针. mapping 一个关系型数组. function 一种特殊的指针, 指向(object, 函数名)这样一个组合. arrays 数组的声明采用使用 '*' 跟在一种基本的类型. void 这种类型对变量没有任何用处, 只对函数有用. 它表明这个函数 不返回任何值. mixed 这是一种特殊的数据类型, 可以指向任何的数据类型. 如果一个 变量被声明成mixed, 那么Driver不会对它做任何检查. class 自定义的数据类型, 类似C的struct而和C++和class不一样. 一上是MudOS支持的数据类型. 小结: 对一个变量, Driver需要知道存在计算机内存中的'0'和'1'到底 指的什么东西, 这样我们引入落数据类型. 我们学习3种简单的数据 类型, 同时了解了MudOS支持的各种数据类型. 对于各种操作符, 不 同数据类型有各自不同的操作符, 比如你让 "飞鸟"/"trill", 那 Driver一定会返回一个错误的. 大多数数的操作符和C/C++的一样, 只是+ 还支持字符串和数字相加.