循环是常用的流程环节。
1 //链表控制 2 //链表控制的优点,是通过指针来定位,那么循环的过程中,即是可变的,实时性很强。 3 var tmp *datastruct.ListNode 4 tmp = &datastruct.ListNode{Val: -1, Next: nil} 5 6 i := 0 7 for node := tmp; node != nil; node = node.Next { 8 if i >= 10 { 9 break 10 } 11 12 node.Next = &datastruct.ListNode{ 13 Val: i, 14 Next: nil, 15 } 16 17 i++ 18 } 19 20 for node := tmp; node != nil; node = node.Next { 21 fmt.Println(node) 22 } 23 24 //循环通过数据来控制 25 //由于range的时候 完成了值copy,所以range后面的arr长度为1,那么中间过程代码对于arr的追增,依旧长度为1. 26 //所以只会循环一次 27 28 i = 0 29 arr := []int{-1} 30 for _, val := range arr { 31 fmt.Println(val) 32 if i >= 10 { 33 break 34 } 35 arr = append(arr, i) 36 37 fmt.Println(val) 38 i++ 39 } 40 41 //那么数组如何动态控制循环呢? 类似死循环的技巧,可以实现 42 i = 0 43 arr = []int{-1} 44 for len(arr) > 0 { 45 arr = arr[1:] 46 if i >= 10 { 47 break 48 } 49 50 arr = append(arr, i) 51 52 fmt.Println(i) 53 54 i++ 55 }
可变循环的需求: 就是通过边界上的设定,规避语言的限制(或者其他限制),从而更符合场景的实现。
循环也是很重要的流程环节。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2017-04-26 关于join on 和单表查询的实时效果