enumerator

    1热度

    1回答

    我对GetEnumerator方法执行感到困惑。我想知道GetEnumberator方法在什么时候执行。我有一个类A,它有2或3个属性,并且其中一个属性正在GetEnumerator方法中使用。如果我将一个新值赋给A类对象的该属性,然后将相同的对象赋给某个名副其实的名称。然后我可以看到更改ResultView值。这意味着当我分配该对象时,GetEnumerator方法在后端执行。如果我错了,请澄清

    0热度

    1回答

    triangular_numbers = Enumerator.new do |yielder| number = 0 count = 1 loop do number += count count += 1 yielder.yield number end end 5.times { print triangular_numbers

    4热度

    1回答

    我正在实现AWS S3文件传输API。我被迫把S3的S3ObjectInputStream中的字节流到浏览器。 我们有一个使用cloudfront服务的文件不是一个选项(主要是本地开发) 我有一个InputStream,所以最明显的事情就是使用Ok.chunked与Enumerator.fromStream( ),但Enumerator.fromStream()有一个非常明确的警告,即流不应该很慢

    2热度

    3回答

    我想为Ruby 2的Enumerator :: Lazy类实现一个take_until方法。它的工作原理与take_while类似,但当代码块返回true时停止迭代。结果应该包括产生的块匹配的项目。 我的问题是我如何表示迭代的结束已达到?使用常规枚举器时,可以在每个方法中引发StopIteration错误,以表示迭代器的结束。但是,这似乎并不适用于懒惰的枚举: class Enumerator::

    5热度

    1回答

    我想从不同的线程调用一个普通的枚举器。当我这样做, enum = (0..1000).to_enum t1 = Thread.new do p enum.next sleep(1) end t2 = Thread.new do p enum.next sleep(1) end t1.join t2.join 它提出了一个错误: Fiber c

    0热度

    1回答

    在研究有关IEnumerator和IEnumerator<T>,我就翻过了如下声明: - 如果我们在任何收集调用的GetEnumerator(),我们主要得到了类型安全的版本,即“普通”版本,值得注意的例外这种情况是返回经典(非通用)版本的数组。 我的问题是: - 为什么阵列时调用GetEnumerator()函数返回“经典”枚举,但像List<T>等其他数据结构返回通用枚举? string[]

    0热度

    1回答

    我目前正在为这个简单的GUI脚本语言创建一个小的小解析器。一切工作正常,但我需要知道,如果有可能做到这一点: Parser.hpp: class Parser { public: enum class LineType; } GUIParser.hpp: class GUIParser : public Parser { public: enum class L

    0热度

    2回答

    据我所知它不存在。 CCArray *array = CCArray::create(); CCArrayEnumerator *enumerator = array->createEnumerator(); ... CCObject *nextObjectOrNull = enumerator->nextObject(); CCObject *curre

    0热度

    1回答

    我知道枚举类型实现取决于枚举器的值,编译器选择一个可以表示所有枚举器值的类型,在下面的例子中我不知道为什么example1没有编译,而example2编译好吗? 注: 这个大数字不只是一个随机数,这也正是pow(2,63),我不能没有使用它,因为普查员只能与整型常量表达式进行初始化。 9223372036854775808 = pow(2,63) example1.1: enum A{a=9223

    3热度

    1回答

    为什么这会返回零,第2行是什么意思?该数组表示一个Sudoku难题的行,我试图为其创建一个解决方案。 我想在irb中使用不同的方法来查看有多少种不同的方法可以查看数组。 array = ['015003002000100906270068430490002017501040380003905000900081040860070025037204600'] array.each_slice(9)