前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >slice for 循环中删除元素

slice for 循环中删除元素

作者头像
solate
发布于 2019-07-22 08:27:53
发布于 2019-07-22 08:27:53
5.1K00
代码可运行
举报
文章被收录于专栏:solate 杂货铺solate 杂货铺
运行总次数:0
代码可运行

slice for 循环中删除元素

方法1

Golang Delete Slice Item in Range Problem

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chars := []string{"a", "a", "b"}

for i := 0; i < len(chars); i++ {
    if chars[i] == "a" {
        chars = append(chars[:i], chars[i+1:]...)
        i-- // form the remove item index to start iterate next item
    }
}

fmt.Printf("%+v", chars)

方法二

Find and delete elements from slice in golang

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p := []int{1, -13, 9, 6, -21, 125}
j := 0

for _, n := range p {
    if n >= 0 {
        p[j] = n
        j++
    }
}
p = p[:j]

不改原slice

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p := []int{1, -13, 9, 6, -21, 125}
j := 0
q := make([]int, len(p))
for _, n := range p {
    if n >= 0 {
        q[j] = n
        j++
    }
}
q = q[:j] // q is copy with numbers >= 0

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go 学习
第一,语言简单,上手快。Go 语言的语法特性简直是太简单了,简单到你几乎玩不出什么花招,直来直去的,学习难度很低,容易上手。
wywwzjj
2023/05/09
1.9K0
Go 学习
Go Slice【Go语言圣经笔记】
Slice(切片)代表长的序列,序列中每个元素都有相同的类型(这一点同数组,事实上切片底层实现就是数组,一个切片必须依赖一个数组存在,多个切片可以依赖同一个数组,它们可以是该数组不同或相同的子序列)。一个Slice类型的元素一般写作[]T,其中T代表slice中元素的类型。slice的语法和数组很像,只是没有固定长度而已。
Steve Wang
2021/12/06
6140
Golang高效实践之泛谈篇
我博客之前的Golang高效实践系列博客中已经系统的介绍了Golang的一些高效实践建议,例如:《Golang高效实践之interface、reflection、json实践》、《Golang 高效实践之defer、panic、recover实践》、《Golang 高效实践之并发实践context篇》、《Golang 高效实践之并发实践channel篇》,本文将介绍一些零散的Golang高效实践建议,虽然琐碎但是比较重要。
用户2937493
2019/08/29
4600
100天精通Golang(基础入门篇)——第11天:深入解析Go语言中的切片(Slice)及常用函数应用
本文是《100天精通Golang(基础入门篇)——第11天:切片(Slice)》,将详细介绍切片的概念、语法、修改、以及len()、cap()、append()和copy()函数的使用。读者将通过学习本文深入了解Golang中切片的使用方法和常用函数的功能。
猫头虎
2024/04/08
1640
100天精通Golang(基础入门篇)——第11天:深入解析Go语言中的切片(Slice)及常用函数应用
Golang 切片删除指定元素的几种方法
Go 并没有提供删除切片元素专用的语法或函数,需要使用切片本身的特性来删除元素。
恋喵大鲤鱼
2022/05/07
8.5K0
Go slice扩容N连问
后面的参数必须为 指针类型,否则IDE会有提示,运行后打出来的是%!p(int=0)
fliter
2023/09/05
3480
Go slice扩容N连问
Go 语言学习之 slice
slice 是有 3 个字段的数据结构,这些数据结构包含 Go 语言需要操作底层数组的元数据,这 3 个字段分别是指向底层数组的指针,切片的长度和切片的容量。
frank.
2020/08/03
3350
Rust vs Go:常用语法对比(十二)
Found "dewey" at position 1 in ["huey" "dewey" "louie"]
fliter
2023/09/05
2460
Rust vs Go:常用语法对比(十二)
几个常见的 slice 错误
最近看到 medium 上有篇文章[1]把关于 slice 的常见错误总结出来了,有些甚至是老司机也容易犯的。每个错误都先描述问题,再给出修改建议,最后再展示一个代码样例。
梦醒人间
2022/03/29
4380
Go切片与技巧(附图解)
切片是Go语言中最多被使用的数据结构之一。本文将介绍切片的创建、操作、表达式以及使用的技巧。
太白技术
2022/09/01
4690
Go切片与技巧(附图解)
Golang基本语法笔记
var n int8 n=100 fmt.Println(n) //100 没有问题 //如果赋值为200 则不行 因为int8取值范围最大是127
OwenZhang
2021/12/08
3660
Golang基本语法笔记
Golang 基础语法-高级数据类型
本文主要介绍 golang 内置数据类型的 array, slice, map。这几种数据类型在日常使用中是非常常见的。
luxixing
2019/05/28
4480
Rust vs Go:常用语法对比(十三)
题图来自 Go vs. Rust: The Ultimate Performance Battle
fliter
2023/09/05
1830
Rust vs Go:常用语法对比(十三)
Go语言学习系列——循环语句:for循环(包括传统for、for-range)——【坚果派-红目香薰】
红目香薰
2025/03/13
700
Go语言学习系列——循环语句:for循环(包括传统for、for-range)——【坚果派-红目香薰】
Go语法指南
出处---Go编程语言 欢迎来到 Go 编程语言指南。本指南涵盖了该语言的大部分重要特性 Go 语言的交互式简介,它分为三节。第一节覆盖了基本语法及数据结构,第二节讨论了方法与接口, 第三节则简单介绍了 Go 的并发原语。每节末尾都有几个练习,你可以对自己的所学进行实践。 你可以 在线学习 或 安装到本地。 Go基础语法,方便查阅 包、变量和函数 学习 Go 程序的基本组件 1.包 每个 Go 程序都是由包组成的。 程序运行的入口是包 main。 这个程序使用并导入了包 "fmt" 和 "math/rand
spilledyear
2022/05/13
1.2K0
Go语法指南
Go教程第八篇:Array和Slice
数组是同一类型的元素的集合,比如,5,8,9,79,76是一组整型,他们就可以组成一个数组。在Go中不同类型的值不允许放入到同一个数组中。
会呼吸的Coder
2020/02/17
7010
Rust vs Go:常用语法对比(八)
题目来自 Golang vs. Rust: Which Programming Language To Choose in 2023?[1] 141. Iterate in sequence over
fliter
2023/09/05
3430
Rust vs Go:常用语法对比(八)
Rust vs Go:常用语法对比(三)
题图来自When to use Rust and when to use Go[1]
fliter
2023/09/05
2770
Rust vs Go:常用语法对比(三)
go语言学习-数组, slice和map 原
数组为值传递,当赋值给另外一个变量的时候是将值全部都copy,存一个副本,改变副本的值不会改变原有数组。slice为指针传递,改变值会改变原有slice中存的值
solate
2019/07/19
4320
100天精通Golang(基础入门篇)——第9天:Go语言程序的循环语句
本篇博客介绍了 Go 语言程序中的循环语句,包括 for 循环、循环变体和多层 for 循环。同时讨论了跳出循环的语句,包括 break 和 continue,以及介绍了 goto 语句的使用。通过学习本篇内容,可以加深对 Go 语言循环语句的理解和应用。
猫头虎
2024/04/08
1830
100天精通Golang(基础入门篇)——第9天:Go语言程序的循环语句
相关推荐
Go 学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档