首页 > 其他分享 >0081-Go-切片 slice

0081-Go-切片 slice

时间:2022-10-30 08:22:17浏览次数:75  
标签:slice fmt Println Go import main 0081 make

环境

  • Time 2022-08-23
  • Go 1.19

前言

说明

参考:https://gobyexample.com/slices

目标

使用 Go 语言的切片类型。

新建切片类型

package main

import "fmt"

func main() {

    slice := make([]string, 3)
    fmt.Println("emp:", slice)
}

修改和获取元素

package main

import "fmt"

func main() {

    slice := make([]string, 3)
    fmt.Println("emp:", slice)

    slice[0] = "a"
    slice[1] = "b"
    slice[2] = "c"
    fmt.Println("set:", slice)
    fmt.Println("get:", slice[2])
}

获取长度

package main

import "fmt"

func main() {

    slice := make([]string, 3)
    fmt.Println("emp:", slice)

    slice[0] = "a"
    slice[1] = "b"
    slice[2] = "c"

    fmt.Println("len:", len(slice))
}

追加元素

package main

import "fmt"

func main() {

    slice := make([]string, 3)
    fmt.Println("emp:", slice)

    slice[0] = "a"
    slice[1] = "b"
    slice[2] = "c"

    fmt.Println("len:", len(slice))

    slice = append(slice, "d")
    slice = append(slice, "e", "f")
    fmt.Println("apd:", slice)
}

切片拷贝

package main

import "fmt"

func main() {

    slice := make([]string, 3)

    slice[0] = "a"
    slice[1] = "b"
    slice[2] = "c"

    slice = append(slice, "d")
    slice = append(slice, "e", "f")

    dst := make([]string, len(slice))
    copy(dst, slice)
    fmt.Println("cpy:", dst)
}

截取

package main

import "fmt"

func main() {

    slice := make([]string, 3)

    slice[0] = "a"
    slice[1] = "b"
    slice[2] = "c"

    slice = append(slice, "d")
    slice = append(slice, "e", "f")

    l := slice[2:5]
    fmt.Println("sl1:", l)
    // 从头开始
    l = slice[:5]
    fmt.Println("sl2:", l)
    // 直到末尾
    l = slice[2:]
    fmt.Println("sl3:", l)
}

新建并初始化切片

package main

import "fmt"

func main() {

    t := []string{"g", "h", "i"}
    fmt.Println("dcl:", t)
}

二维切片

package main

import "fmt"

func main() {

    twoD := make([][]int, 3)
    for i := 0; i < 3; i++ {
        innerLen := i + 1
        twoD[i] = make([]int, innerLen)
        for j := 0; j < innerLen; j++ {
            twoD[i][j] = i + j
        }
    }
    fmt.Println("2d: ", twoD)
}

总结

使用 Go 语言的切片类型。

附录

标签:slice,fmt,Println,Go,import,main,0081,make
From: https://www.cnblogs.com/jiangbo4444/p/16840448.html

相关文章

  • 0082-Go-关联类型 map
    环境Time2022-08-23Go1.19前言说明参考:https://gobyexample.com/maps目标使用Go语言的关联类型map。新建mappackagemainimport"fmt"funcmain(){......
  • 0073-Go-hello world
    环境Time2022-08-23Go1.19前言说明参考:https://gobyexample.com/hello-world目标使用Go语言打印helloworld。初始化项目gomodinitjiangbo/go打印hel......
  • 0074-Go-值类型
    环境Time2022-08-23Go1.19前言说明参考:https://gobyexample.com/values目标使用Go语言的字符串,整型,浮点型和布尔类型。示例packagemainimport"fmt"fu......
  • Golang 基于 flag 库实现一个命令行工具
     Golang标准库中的flag库提供了解析命令行选项的能力,我们可以基于此来开发命令行工具。 假设我们想做一个命令行工具,我们通过参数提供【城市】,它自动能够返回当前......
  • golang中的锁竞争问题
    当我们打印错误的时候使用锁可能会带来意想不到的结果。我们看下面的例子:packagemainimport("fmt""sync")typeCoursewarestruct{mutexsync.RWMutexIdint6......
  • golang中的nil接收器
    我们先看一个简单的例子,我们自定义一个错误,用来把多个错误放在一起输出:typeCustomErrorstruct{errors[]string}func(c*CustomError)Add(errstring){c.errors=......
  • golang中的字符串
    0.1、索引​​https://waterflow.link/articles/1666449874974​​1、字符串编码在go中rune是一个unicode编码点。我们都知道UTF-8将字符编码为1-4个字节,比如我们常用的汉字......
  • github.com/creack/goproxy
    github.com/creack/goproxy只支持http反向代理;负载均衡只支持随机算法。packagemainimport("fmt""log""net/http""github.com/creack/goproxy"......
  • C++ 实现argosort
    #include<bits/stdc++.h>usingnamespacestd;intmain(){intn=5,t;vector<int>a,b;for(inti=0;i<n;++i){scanf("%d",&t......
  • Golang基础-函数
    一、引入函数提高代码的复用性,减少代码的冗余,提高代码的维护性为完成某一功能的程序指令(语句)的集合,称为函数基本语法:func函数名(形参列表)(返回值类型列表){执......