// @ts-nocheck
/**
 * 生成壹個數字範圍的數組
 * @param start 範圍的起始值
 * @param end 範圍的結束值
 * @param step 步長，默認為 1
 * @param fromRight 是否從右側開始生成，默認為 false
 * @returns 生成的數字範圍數組
 */
export function range(start : number, end : number, step : number = 1, fromRight : boolean = false) : number[] {
	let index = -1;
	// 計算範圍的長度
	let length = Math.max(Math.ceil((end - start) / step), 0);
	// 創建壹個長度為 length 的數組
	// #ifdef APP-ANDROID
	const result = Array.fromNative(new IntArray(length.toInt()));
	// #endif
	// #ifndef APP-ANDROID
	const result = new Array(length);
	// #endif

	// 使用循環生成數字範圍數組
	let _start = start
	while (length-- > 0) {
		// 根據 fromRight 參數決定從左側還是右側開始填充數組
		result[fromRight ? length : ++index] = _start;
		_start += step;
	}
	return result;
}


// 示例
// console.log(range(0, 5)); // 輸出: [0, 1, 2, 3, 4]
// console.log(range(1, 10, 2, true)); // 輸出: [9, 7, 5, 3, 1]
// console.log(range(5, 0, -1)); // 輸出: [5, 4, 3, 2, 1]