登录
首页 >  Golang >  Go问答

在Golang中删除两个数组中相同的元素

来源:stackoverflow

时间:2024-02-08 16:05:56 212浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《在Golang中删除两个数组中相同的元素》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

a:=[]rune("/storage/emulated/0/Custom_Scripts/Golang/")

b:=[]rune("/storage/emulated/0/")

有两个切片 a && b,在循环中我们应该从第二个切片 $b 中取出每个元素并将其与第一个切片 $a 中的元素进行比较,如果它们相同,那么我们将从第一个切片 $a 解决方案应该没有任何包,除了 fmt(仅用于打印最终数组)并通过两种方式: 使用循环的拳头 第二个地图

尝试用这种方式释放它,但我遇到了超出范围的恐慌,有人可以帮助我吗?

package main
import(
"fmt"
)
func main() {
    fileMeta := 
[]rune("/storage/emulated/0/Custom_Scripts/Golang/")
    delChr := []rune("/storage/emulated/0")
    for i, j := range fileMeta {
        for _, m := range delChr {
            if m == j {
               //fileMeta[i] = ""
               fileMeta = append(fileMeta[:i], 
fileMeta[i+1:]...)
            }
        }
    }
    fmt.Println(fileMeta)
  }

正确答案


我不会重新发明轮子:

package main

import (
    "fmt"
    "strings"
)

func main() {
    fileMeta := []rune("/storage/emulated/0/Custom_Scripts/Golang/")
    delChr := []rune("/storage/emulated/0")

    fm := string(fileMeta)
    pfx := string(delChr)

    if tail := strings.TrimPrefix(fm, pfx); len(tail) != len(fm) {
        fileMeta = []rune(tail)
    }

    fmt.Println(fileMeta, string(fileMeta))
}

顺便说一句,您真的需要在[]runes上进行操作吗?对于大多数应用程序来说这是不自然的——为什么不立即使用正确的字符串呢?

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>