冒号运算符
语法
- float[] base : limit
- float[] base : increment : limit
注:
冒号运算符只能用作 array initialization 函数和索引运算符(在括号 [] 注记内)的参数。
参数
- base – 浮点型
序列的起始值。
- increment – 浮点型
向 base 连续添加的值。 对于递升序列 base<=limit,必须为正值;对于递减序列 base>=limit,必须为负值。 默认值为 1。
- limit – 浮点型
不能超出的最大值/最小值
返回
包含一系列浮点值的数组
[ base, base + increment, base + 2*increment, … ]
其中,最后一个元素不超过 limit。
参数 base、increment 和 limit 均以冒号分隔的注记形式给出。
注:
返回的数组大小有限。 可在程序运行时首选项中进行配置(默认值:100000)。
相关内容
示例
二元冒号运算符
const a = [2 : 4] // (3)[2,3,4]
const b = [0.5 : 3] // (3)[0.5,1.5,2.5]
const c = [4 : 2] // (0)[]
三元冒号运算符
const a = [1 : 0.5 : 3] // (5)[1,1.5,2,2.5,3]
const b = [4 : -1 : 2] // (3)[4,3,2]
const c = [1 : -0.5 : 2] // (0)[]
const d = [1 : -0.5 : 1] // (1)[1]
const e = [1 : 0 : 1] // (0)[]
浮点不精确
计算序列值 base+i*increment 时,存在浮点不精确问题。 其精确值可能与预期不符。 由于存在隐式取整,因此在打印值时不一定会注意到。
const a = [0 : 0.15 : 0.5]
Init --> print(a) // (4)[0,0.15,0.3,0.45]
print(a[3] == 0.45) // false
print(abs(a[3] - 0.45) < 1e-10) // true