【GO】切片练习题

创建切片

题目描述

使用三种不同的方式创建包含元素[1, 2, 3, 4, 5]的切片,并输出它们。

输出示例

方式1(直接创建):[1 2 3 4 5]

方式2(make创建):[1 2 3 4 5]

方式3(从数组创建):[1 2 3 4 5]

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    // 方式1:直接创建
    slice1 := []int{1, 2, 3, 4, 5}
    
    // 方式2:使用make创建并初始化
    slice2 := make([]int, 5)
    slice2[0], slice2[1], slice2[2], slice2[3], slice2[4] = 1, 2, 3, 4, 5
    
    // 方式3:从数组创建
    arr := [5]int{1, 2, 3, 4, 5}
    slice3 := arr[:]
    
    fmt.Printf("方式1(直接创建):%v\n", slice1)
    fmt.Printf("方式2(make创建):%v\n", slice2)
    fmt.Printf("方式3(从数组创建):%v\n", slice3)
}

切片截取

题目描述

创建切片[0,1,2,3,4,5,6,7,8,9],截取并输出以下部分:

  • 前3个元素

  • 第3到第6个元素

  • 后4个元素

输出示例

原切片:[0 1 2 3 4 5 6 7 8 9]

前3个元素:[0 1 2]

第3到第6个元素:[2 3 4 5]

后4个元素:[6 7 8 9]

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    slice := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    
    slice1 := slice[:3]
    slice2 := slice[2:6]
    slice3 := slice[6:]
    
    fmt.Printf("原切片:%v\n", slice)
    fmt.Printf("前3个元素:%v\n", slice1)
    fmt.Printf("第3到第6个元素:%v\n", slice2)
    fmt.Printf("后4个元素:%v\n", slice3)
}

前后缀追加

题目描述

创建切片mainSlice=[4,5,6],前缀切片prefix=[1,2,3],后缀切片suffix=[7,8,9],将前缀和后缀分别追加到mainSlice的前后。

输出示例

主切片:[4 5 6]

前缀:[1 2 3]

后缀:[7 8 9]

最终结果:[1 2 3 4 5 6 7 8 9]

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    mainSlice := []int{4, 5, 6}
    prefix := []int{1, 2, 3}
    suffix := []int{7, 8, 9}
    
    fmt.Printf("主切片:%v\n", mainSlice)
    fmt.Printf("前缀:%v\n", prefix)
    fmt.Printf("后缀:%v\n", suffix)
    
    // 先追加后缀到主切片
    mainSlice = append(mainSlice, suffix...)
    // 再将前缀追加到最前面(通过创建新切片)
    result := append(prefix, mainSlice...)
    
    fmt.Printf("最终结果:%v\n", result)
}

使用copy函数复制切片

题目描述

创建切片src=[1,2,3,4,5]和长度为3的切片dst,使用copy函数将src的前3个元素复制到dst,输出结果。

输出示例

源切片:[1 2 3 4 5]

目标切片:[1 2 3]

复制元素个数:3

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    src := []int{1, 2, 3, 4, 5}
    dst := make([]int, 3)
    
    copied := copy(dst, src)
    
    fmt.Printf("源切片:%v\n", src)
    fmt.Printf("目标切片:%v\n", dst)
    fmt.Printf("复制元素个数:%d\n", copied)
}

综合应用

题目描述

创建切片["苹果","香蕉","橙子","葡萄","西瓜"],完成以下操作并输出:

  1. 输出原切片

  2. 输出切片长度和容量

  3. 追加"芒果"和"草莓"

  4. 截取前4个元素

  5. 将第2个元素改为"樱桃"

  6. 输出最终结果

输出示例

原切片:[苹果 香蕉 橙子 葡萄 西瓜]

长度:5,容量:5

追加后:[苹果 香蕉 橙子 葡萄 西瓜 芒果 草莓]

截取前4个:[苹果 香蕉 橙子 葡萄]

修改后:[苹果 樱桃 橙子 葡萄]

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    fruits := []string{"苹果", "香蕉", "橙子", "葡萄", "西瓜"}
    
    fmt.Printf("原切片:%v\n", fruits)
    fmt.Printf("长度:%d,容量:%d\n", len(fruits), cap(fruits))
    
    // 追加元素
    fruits = append(fruits, "芒果", "草莓")
    fmt.Printf("追加后:%v\n", fruits)
    
    // 截取前4个
    fruits = fruits[:4]
    fmt.Printf("截取前4个:%v\n", fruits)
    
    // 修改元素
    fruits[1] = "樱桃"
    fmt.Printf("修改后:%v\n", fruits)
}
相关推荐
呆萌很7 小时前
【GO】数组练习题
golang
呆萌很9 小时前
【GO】Map练习题
golang
Geoking.14 小时前
【新手向】go语言最新下载及安装配置教程
开发语言·后端·golang
ん贤14 小时前
Go map 底层原理
算法·golang·map
Meepo_haha16 小时前
Go基础之环境搭建
开发语言·后端·golang
@PHARAOH18 小时前
HOW - Go 开发入门(一)
开发语言·后端·golang
dgvri1 天前
Windows上安装Go并配置环境变量(图文步骤)
开发语言·windows·golang
AMoon丶2 天前
Golang--协程调度
linux·开发语言·后端·golang·go·协程·goroutine
暴躁小师兄数据学院2 天前
【WEB3.0零基础转行笔记】Go编程篇-第11讲:Gin框架
笔记·golang·web3·区块链·智能合约