口味你好,使用Iterable给类增加迭代能力参考:class MyIterableClass implements Iterable<number> { private numbers: number[] = [1, 2, 3, 4, 5]; // 实现Iterable接口的[Symbol.iterator]方法,返回一个Iterator对象 [Symbol.iterator](): ESObject { let index = 0; return { next: (): IteratorResult<number> => { if (index < this.numbers.length) { return { done: false, value: this.numbers[index++] }; } else { return { done: true, value: undefined }; } } }; } } let num:number const iterableInstance = new MyIterableClass(); for ( num of iterableInstance) { console.log("输出",num); // 输出1, 2, 3, 4, 5 }至于文档描述中说不支持在ets中使用是因为ArkTS不支持symbol,ArkTS只支持Symbol.iterator,因此直接使用Symbol.iterator是可以的,但是构造一个symbol对象,然后使用会报语法错误
口味你好,使用Iterable给类增加迭代能力参考:
至于文档描述中说不支持在ets中使用是因为ArkTS不支持symbol,ArkTS只支持Symbol.iterator,因此直接使用Symbol.iterator是可以的,但是构造一个symbol对象,然后使用会报语法错误