Mud 版 (精华区)
发信人: jiayb (多情剑客痴情剑), 信区: Mud
标 题: lpc讲座(4)
发信站: 哈工大紫丁香 (Wed Apr 1 18:01:55 1998), 转信
发信人: mice (风中的云), 信区: MUD
标 题: lpc讲座(4)
发信站: 冰城驿站之BBS (Fri Feb 27 20:53:34 1998), 转信
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++的一样,
只是+ 还支持字符串和数字相加.
--
※ 修改:.yangx 于 Apr 1 17:44:58 修改本文.[FROM: 202.97.228.245]
※ 来源:.冰城驿站之BBS bbs.hr.hl.cn.[FROM: 202.118.226.90]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: yangx.bbs@bbs.hr.hl.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:6.649毫秒