数组与切片

ace_kylin · · 409 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
# 数组 ### 定义:是同一种数据类型的**固定长度**的序列。var a [len]int #### 长度是数组类型的一部分,因此,var a[5] int和var a[10]int是不同的类型,数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1,访问越界,如果下标在数组合法范围之外,则触发访问越界,会panic #### 数组是值类型,因此改变副本的值,不会改变本身的值 example:fibonacci非递归: ``` func fibonacci() { fib := [20]int64{0: 1, 1: 1} for i := range fib { if i == 0 || i == 1 { continue } fib[i] = fib[i-1] + fib[i-2] } fmt.Println(fib) } ``` 递归实现fibonacci: ``` func fibonacciRecursion(i int64) int64 { if i <= 1 { return 1 } return fibonacciRecursion(i-1) + fibonacciRecursion(i-2) } ``` 函数实现fibonacci: ``` func fibonacciFunc() func() int64 { var a, b int64 a, b = 0, 1 return func() int64 { a, b = b, a+b return a } } ``` 以上函数通过main调用: ``` func main() { fibonacci() for i := 0; i < 20; i++ { fmt.Printf("%d\t", fibonacciRecursion(int64(i))) } fmt.Println() fib := fibonacciFunc() for i := 0; i < 20; i++ { fmt.Printf("%d\t", fib()) } } ```

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

409 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传