枚举类型
编辑教程枚举类型
一个枚举类型变量只能被赋值一个有限的集合。这个集合有有序的符号组成。每个符号内部映射到一个整数值。第一个符号在运行时用0表示,第二个用1表示等等。例如:
type
Direction = enum
north, east, south, west
var x = south # `x` is of type `Direction`; its value is `south`
echo($x) # writes "south" to `stdout`
所有的比较运算符都可以用枚举类型。
一个枚举符号可以避免歧义:Direction.south。
$操作符可以将任何枚举类型的值转换为它的名字,ord过程转化为它们基本的整数值。
为了更好的连接到其他语言中,枚举类型符号可以被赋值一个明确的序号值。然而,这个序号值必须是升序类型。一个符号的有序值没有明确的给出将会被赋值为前一个符号值+1.
一个明确的有序枚举可以有孔 (注:一个明确的有序类型的序数值可以不是连续的值)
type
MyEnum = enum
a = 2, b = 4, c = 89
序数类型
连续的枚举类型,整形,字符,以及布尔类型(和子类型)称作序数类型。序数类型有相当多的特殊操作:
操作 | 描述 |
---|---|
ord(x) | 返回x的整型值 |
inc(x) | x的值+1 |
inc(x, n) | x的值+n,n为整数 |
dec(x) | x的值-1 |
dec(x, n) | x的值-n,n为整数 |
succ(x) | 返回x的下一个值 |
succ(x, n) | 返回x后的第n个值 |
pred(x) | 返回x的前一个值 |
pred(x, n) | 返回x的第前n个值 |
inc,dec,succ,pred操作会失败通过产生EOutOfRange(越界),EOverflow(溢出)异常。(如果代码编译已经有适当的运行时检查打开)
子类型
子类型是一个来自整形或者枚举类型(基本类型)的范围值。例如:
type
Subrange = range[0..5]
Subrange是一个int的子类型,它只能容纳从0到5的值。给Subrange子类型变量赋任何值都会出现编译或运行时错误。从基本类型给它的一个子类型赋值是允许的(反之亦然)。
系统模型定义了重要的自然类型范围 0...high(int)。其他编程语言授权自然类型使用无符号数。
这通常是错误的:你不想无符号计算仅仅是因为这个数不能为负。nim的自然类型帮助避免这种常见的编程错误。
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟