(转载)虚幻引擎3--【UnrealScript教程】章节一:8.Enums

enum枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。

枚举类型定义的一般形式为:
enum 枚举名{ 枚举值表 };
在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。

我们先来定义个枚举并输出看看
enum EColor
{
red,
white,
black,
blue,
};
定义个全局变量
var EColor color1;
var EColor color2;
var EColor color3;

并进行输出
这时全部代码应该为
Class MyUSGame extends actor
placeable;

enum EColor
{
red,
white,
black,
blue,
};
var EColor color1;
var EColor color2;
var EColor color3;

function postbeginplay()
{
color1=red;
color2=black;
color3=blue;
`log("this is the color1:"@color1);
`log("this is the color2:"@color2);
`log("this is the color3:"@color3);
}

编译运行


输出了每个枚举代表的元素
 
那么每个枚举的值就是这些字符串了? 肯定不是,我们来看一下枚举的值
enum EColor
{
red,
white,
black,
blue,
};
function postbeginplay()
{
`log("color1'value:");
`log(EColor.red);
`log("color2'value:");
`log(EColor.white);
`log("color3'value:");
`log(EColor.black);
`log("color4'value:");
`log(EColor.blue);
`log("color1 is biger than color2?");
`log(EColor.red>EColor.black);
}


每个元素按顺序输出01234,也就是说枚举的值是在你定义的时候按顺序从0赋值的,第一个是0第二个是1第三个是2依次类推。。。
原文地址:https://www.cnblogs.com/wodehao0808/p/6104680.html