本文节选自《LPC语言基础教程:从零学习游戏开发》,版权归@mudren,欢迎转载,但必须注明来源(mud.ren)。
第二节 LPC语言中的特殊运算符
上一节中我们说了LPC语言的运算符和C语言基本相同,除了少了三个C语言中的运算符外,还有其它不同点吗?
答案是有,运算符 + 、-、&、| 的以下用法在C语言中是报错的,但在LPC语言中是正确的。
// 示例:3.2.1
int main(object me, string arg)
{
// 数组合并运算
int *a, *b, *c;
a = ({1, 2, 3});
b = ({3, 2, 1});
c = a + b;
c -= ({3});
printf("c = %O\n", c);
return 1;
}
数组合并运算在LPC语言中就是直接用加法运算符合并,简单方便,而移除数组元素也可以直接使用减法运算符,在C语言中是不能这么干的。
LPC语言中新增了 string 数据类型,对字符串的操作和C语言也不太一样了。我们知道在C语言中字符串实际是字符数组,如果要对字符串做合并运算,只能使用 strcmp 函数,而对字符串比较大小也只能使用 strcmp 函数,但在LPC语言中可以使用加法运算符+合并(准确的说+变成了字符串运算符),也可以直接用关系运算符比较大小:
// 示例:3.2.2
int main(object me, string arg)
{
// 字符串合并
string str1, str2;
str1 = "hello, ";
str2 = "mudren!";
printf("str1 + str2 = %s\n", str1 + str2);
// 字符串大小比较
if (str1 > str2)
{
printf("str1 > str2\n");
}
else
{
printf("str1 <= str2\n");
}
return 1;
}
运算符 + 也支持映射的合并运算,而且在映射中还可以使用运算符 *,后续映射使用中会讲解。
另外,在LPC语言中增加了子字符串运算符 ..,在第二章第一节中讲解字符串时已经给了使用示例(2.1.6),数组延展运算符...,在第六章第二节数组中已经讲解,还有类作用域符::,这里不再重复。