切片练习

package main

import "fmt"

/*func main()  {
arr := [10]int {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} s := arr[1:3:5]
fmt.Println("s = ", s)
fmt.Println("len(s) = ", len(s))
fmt.Println("cap(s) = ", cap(s)) s := arr[1:5:7]
fmt.Println("s = ", s)
fmt.Println("len(s) = ", len(s)) // 5-1 == 4
fmt.Println("cap(s) = ", cap(s)) // 7-1 s2 := s[0:6]
fmt.Println("s = ", s2)
fmt.Println("len(s) = ", len(s2)) // 6-0 == 6
fmt.Println("cap(s) = ", cap(s2))
}*/ /*func main() {
arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
s := arr[2:5:5] // {3, 4, 5}
fmt.Println("s=", s)
fmt.Println("len(s)=", len(s))
fmt.Println("cap(s)=", cap(s)) s2 := s[2:7] // {34567} {56789}
fmt.Println("s=", s2)
fmt.Println("len(s)=", len(s2))
fmt.Println("cap(s)=", cap(s2))
}
*/ /*func main() {
// 1. 自动推导赋初值
s1 := []int {1, 2, 4, 6}
fmt.Println("s1 = ", s1) s2 := make([]int, 5, 10)
fmt.Println("len=", len(s2), "cap=", cap(s2)) s3 := make([]int, 7)
fmt.Println("len=", len(s3), "cap=", cap(s3)) }*/ func main() {
s1 := []int {, , , } // 创建一个有初始值的切片 s1 = append(s1, )
s1 = append(s1, )
s1 = append(s1, )
s1 = append(s1, )
s1 = append(s1, ) fmt.Println("s1=", s1)
}

利用切片进行字符串去重

package main

import (
"fmt" ) func noSame(data []string )[]string {
out := data[:] //切片中0可以不写
fmt.Println(out[:])
//便利原始切片字符串
for _, word := range data {
i :=
fmt.Println(word)
for ;i<len(out);i++{
if word==out[i]{
break
}
}
if i==len(out){
out=append(out,word)
}
}
return out
} func main() {
data := []string{"red", "black", "red", "yellow", "yellow", "pink", "blue", "pink", "blue"} afterData := noSame(data)
fmt.Println("Afterdata:", afterData) fmt.Println("++++++++++++++++++++++++++")
fmt.Println( data[:]) }

 切片

copy函数

 函数copy在两个slice间复制数据,复制长度以len小的为准,两个slice之间同一个底层数组。之间对应位置覆盖

append函数

函数append,追加函数,不再累述,与其他编程语言中功能类似

 append(s1, )

golang-切片的更多相关文章

  1. golang切片和数组的区别

    好久的没有写博客了,这段时间没事研究了下go这门语言. 我们先介绍下go中的数组和切片的区别和用法 说了这么多 我们先来看段代码吧 var arr1 [3]int var arr2 [3]int = ...

  2. golang切片slice

    切片slice是引用类型 len()函数获取元素的个数 cap()获取数组的容量 1.申明方式 (1)var a []int 与数组不同的是他不申明长度(2)s2 := make([]int, 3, ...

  3. golang切片数据结构解释

    1. 切片:切片是数组的一个引用,因此切片是引用类型 func main() { var arr = [6]int{1, 2, 3, 4, 5} var slice = arr[1:] fmt.Pri ...

  4. Golang切片的三种简单使用方式及区别

    概念 切片(slice)是建立在数组之上的更方便,更灵活,更强大的数据结构.切片并不存储任何元素而只是对现有数组的引用. 三种方式及细节案例 ①定义一个切片,然后让切片去引用一个已经创建好的数组 pa ...

  5. golang切片类型

    切片slice 其本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或全部 为引用类型 可以直接创建或从底层数组获取生成 使用len()获取元素个数,cap()获取容量 ...

  6. golang 切片和数组在for...range中的区别

    切片是引用类型,而数组是值类型,并且for...range有以下规则: range表达式只会在for语句开始执行时被求值一次,无论后边会有多少次迭代 range表达式的求值结果会被复制,也就是说,被迭 ...

  7. golang 切片小记

    1 切片初始化 func printSlice(s []int) { fmt.Printf("len=%d cap=%d underlying array:%p, %v\n", l ...

  8. golang 切片和map查询比较

    package main import ( "fmt" "time" ) var testTimeSlice = []string{"aa" ...

  9. golang 切片扩容, 时间复杂度

    在切片扩容时,如果原来的底层数组足够大,能放的下 append 的数据,就不会新建底层数组.而如果不够的话,则会分配一个新的数组.也因此是 O(n) 的时间复杂度

  10. golang切片

    切片与数组 go的数组是这样的 array := [3]int{1,2,3} array := [...]int{1,2,3} go的切片 array := []int{1,2,3} //1 arra ...

随机推荐

  1. Matlab M文件变量检测与传递

    M文件中变量的检测与传递 可变数量的输入输出变量(varargin,vararout): Matlab的输入输出变量数量可变,并具有以下特点: 可变输入输出变量必须在正常变量之后 varargin和v ...

  2. OO第四单元(UML)单元总结

    OO第四单元(UML)单元总结 这是OO课程的第四个单元,也是最后一个单元.这个单元只有两次作业,相比前三个单元少一次作业.而且从内容上讲这个单元的作业目的以了解UML为主,所以相对前三个单元比较简单 ...

  3. Python_爬虫小实例

    爬虫小实例 一.问题描述与分析 Q:查询某一只股票,在百度搜索页面的结果的个数以及搜索结果的变化. 分析: 搜索结果个数如下图: 搜索结果的变化:通过观察可以看到,每个一段时间搜索结果的个数是有所变化 ...

  4. 在SQL Server中,为何都建议禁止 VIA 协议,VIA协议具体内容是什么?

    在SQL Server 在SQL Server中,为何都建议禁止 VIA 协议,VIA协议具体内容是什么? 中,为何都建议禁止 VIA 协议,VIA协议具体内容是什么? 在SQL Server中,为何 ...

  5. 超详细Vue实现导航栏绑定内容锚点+滚动动画+vue-router(hash模式可用)

    超详细Vue实现导航栏绑定内容锚点+滚动动画+vue-router(hash模式可用) 转载自:https://www.jianshu.com/p/2ad8c8b5bf75 亲测有效~ <tem ...

  6. MySQL数据库使用时注意事项

    MySQL数据库使用时注意事项 建表的角度上 1.合理安排表关系 2.尽量把固定长度的字段放在前面 3.尽量使用char 代替varchar 4.分表:水平分和垂直分 在使用sql语句的时候 1.尽量 ...

  7. Node.js学习(第二章:node核心模块--fs)

    前言 Node.js中赋予了JavaScript很多在浏览器中没有的能力,譬如:文件读写,创建http服务器等等,今天我们就来看看在node中怎样用JavaScript进行文件的读写操作. 读文件 我 ...

  8. Ane技术大全 - Devil程序员

    来源:http://www.th7.cn/Program/Android/201405/206863.shtml 一.Ane概况 1.Ane是什么? Ane是为了解决 as3(flash)与Java代 ...

  9. mysql启动过程

    MYSQL启动过程经过以下顺序 1.mysql读取配置文件的顺序 读取顺序 /etc/my.cnf>/etc/mysql/my.cnf>/usr/etc/my.cnf ~/.my.cnf ...

  10. ubuntu安裝postman遇到問題

    @ubuntupc:~/Postman/app$ sudo ./Postman ./Postman: error while loading shared libraries: libgconf-2. ...