摘要:数组切片slice这个东西看起来很美好,真正用起来会发现有诸多的不爽。第一,数组、数组切片混淆不清,使用方式完全一样,有时候一些特性又完全不一样,搞不清原理很容易误使用。第二,数组切片的append操作,每次对slice append操作,都返回一个新的slice的引用,对slice的引用没法保持,这样在函数传递slice的情况下append,在调用函数的上下文中看不到slice append的效果。如果想要这种方式凑效,不得不另辟蹊径。本文主要说一下如何解决这个窘境的方法。函数传递slice存在什么问题?func sliceModify(slice []int) { // slice[... 阅读全文
posted @ 2013-08-22 00:14 mac的学习笔记 阅读(2515) 评论(4) 推荐(2) 编辑
摘要:1.使用方式数组和slice长的很像,操作方式也都差不多,并且slice包含了数组的基本的操作方式,如下标、range循环,还有一些如len()则是多种类型共用,所以根据操作根本搞不清数组和切片的区别,能够看出区别的地方主要看如何声明的。数组的声明方式很单一,通常就是下面这样:array1 := [5]int{1, 2, 3, 4, 5}array2 := [5]int{}slice的声明方式就非常多样了,如前面介绍的几种:var slice1 = []int{1, 2, 3, 4, 5}var slice2 = make([]int, 0, 5)var slice3 = make([]int 阅读全文
posted @ 2013-08-22 00:10 mac的学习笔记 阅读(6030) 评论(0) 推荐(0) 编辑