日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

由什么組成的生成器 是由什么做成的生成器


由什么組成的生成器 是由什么做成的生成器


生成器是由生成器的函數(shù)和生成器的迭代器組成,通過構(gòu)造函數(shù)Generator創(chuàng)建的對象,生成器也是一種迭代器,同時又是一個可迭代對象,但是只能對其迭代一次 。這是因?yàn)樗鼈儾]有把所有的值存在內(nèi)存中,而是在運(yùn)行時生成值 。你通過遍歷來使用它們,要么用一個“for”循環(huán),要么將它們傳遞給任意可以進(jìn)行迭代的函數(shù)和結(jié)構(gòu) 。大多數(shù)時候生成器是以函數(shù)來實(shí)現(xiàn)的 。
由什么組成的生成器 是由什么做成的生成器


創(chuàng)建生成器:生成器的創(chuàng)建,必須使用生成器函數(shù)(Generator Function) 。
生成器函數(shù)的寫法:
【由什么組成的生成器 是由什么做成的生成器】function*method(){
}
執(zhí)行生成器函數(shù)內(nèi)部:生成器函數(shù)內(nèi)部是為了給生成器的每次迭代提供的數(shù)據(jù);每次調(diào)用生成器的next方法,將導(dǎo)致生成器函數(shù)運(yùn)行到下一個yield關(guān)鍵字位置;yield是一個關(guān)鍵字,該關(guān)鍵字只能在生成器函數(shù)內(nèi)部使用,表達(dá)“產(chǎn)生”一個迭代數(shù)據(jù) 。
需要注意的細(xì)節(jié):
1、生成器函數(shù)可以有返回值,返回值出現(xiàn)在第一次done為true時的value屬性中;
2、調(diào)用生成器的next方法時,可以傳遞參數(shù),傳遞的參數(shù)會交給yield表達(dá)式的返回值;
3、第一次調(diào)用next方法時,傳參沒有任何意義;
4、在生成器函數(shù)內(nèi)部,可以調(diào)用其他生成器函數(shù),但是要注意加上*號 。
生成器的其他API:
return方法:調(diào)用該方法,可以提前結(jié)束生成器函數(shù),從而提前讓整個迭代過程結(jié)束;
throw方法:調(diào)用該方法,可以在生成器中產(chǎn)生一個錯誤 。

    推薦閱讀