package main
import "log"
func main() {
nexta := nextA([][]int{
[]int{1, 2, 3},
[]int{4, 5, 6},
[]int{7, 8},
})
for {
v, ok := nexta()
if !ok {
break
}
log.Println("v:", v)
}
}
func nextA(ss [][]int) func() (int, bool) {
idx := -1
ssIdx := 0
ca := []int{}
return func() (i int, b bool) {
if len(ca) == 0 {
ca = ss[ssIdx]
}
idx++
if len(ca) <= idx {
//尝试补充数组
ssIdx++
if len(ss) > ssIdx {
ca = ss[ssIdx]
idx = 0
goto HERE
}
return 0, false
}
HERE:
return ca[idx], true
}
}
懒加载遍历
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 使用路由懒加载以后 webpack打包可以根据页面划分来生成文件,根据路由的不同来加载文件,解决了首页一次性加载文...
- 背景 在我们开发程序的时候,经常需要在程序中实现遍历进程、遍历线程和遍历进程加载模块等获取系统信息的操作。 本文是...
- 在写项目的时候碰到的,写一个树组件(原以为特简单,只到数据量特别大),我用了default-expand-all(...
- why? 懒加载:也叫延迟加载,即在需要的时候进行加载,随用随载。在单页应用中,如果没有应用懒加载,运用webpa...