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)