第四个附加参数有两个用途:
一个是用于控制是否允许NIL,是否允许错误数据。
另一个则是控制在移动的时候是否跳过错误值。
即主要用于异常值处理的参数,该参数值由3位二进制位来进行控制(默认为0):
第一位管理的是是否忽略异常值(不包括nil),即1不报错,0报错。
第二位管理的是nil值是否报错,即1报错,0不报错。
第三位管的是计算移动长度的时候,nil值及字符串等异常值是否包括在内。即0不忽略,1忽略。
如此,衍生出8种组合场景,分别对应如下:
| 二进制 | 十进制值 | 功能说明
|
|---|
| 0b000 | 0 | 默认值,异常值报错,nil不报错,移动时异常值不忽略
|
| 0b001 | 1 | 异常值不报错,nil值不报错,移动时异常值不忽略
|
| 0b010 | 2 | 异常值与nil值报错,移动时异常值不忽略
|
| 0b011 | 3 | 异常值不报错,nil值报错,移动时异常值不忽略
|
| 0b100 | 4 | 异常值报错,nil值不报错,计算移动单位时忽略异常值
|
| 0b101 | 5 | 异常值与nil值不报错,计算移动单位时忽略异常值
|
| 0b110 | 6 | 异常值报错,nil值报错,计算移动单位时忽略异常值
|
| 0b111 | 7 | 异常值不报错,nil值报错,计算移动单位时忽略异常值
|
注:上述说明中“移动时中提到的异常值”包括nil值在内,而其它处异常值中则不包括nil值在内。