Heim >Backend-Entwicklung >Golang >Entfernen Sie dieselben Elemente aus zwei Arrays Golang

Entfernen Sie dieselben Elemente aus zwei Arrays Golang

WBOY
WBOYnach vorne
2024-02-11 22:54:08799Durchsuche

Entfernen Sie dieselben Elemente aus zwei Arrays Golang

php-Editor Apple bringt Ihnen einen Artikel über das Löschen identischer Elemente aus zwei Arrays. Beim Programmieren stoßen wir häufig auf Situationen, in denen wir dieselben Elemente in einem Array löschen müssen. Dieser Vorgang kann uns helfen, Daten besser zu verarbeiten. In diesem Artikel erfahren Sie, wie Sie mithilfe der Golang-Sprache dieselben Elemente aus zwei Arrays löschen. Ich hoffe, dass dies für Ihre Programmierarbeit hilfreich ist. Lass uns einen Blick darauf werfen!

Frageninhalt

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

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

Es gibt zwei Slices a && b. In der Schleife sollten wir jedes Element aus dem zweiten Slice $b nehmen und es mit den Elementen im ersten Slice $a vergleichen. Wenn sie gleich sind, erhalten wir das erste Slice $a Die Lösung sollte ohne Paket außer fmt (nur zum Drucken des endgültigen Arrays) und auf zwei Arten erfolgen: Benutze geschwungene Fäuste Die zweite Karte

Ich versuche, es auf diese Weise freizugeben, bekomme aber eine Panik außerhalb des zulässigen Bereichs. Kann mir jemand helfen?

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)
  }

Lösung

Ich werde das Rad nicht neu erfinden:

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))
}

Übrigens, muss man das wirklich bei []runes machen? Das ist für die meisten Anwendungen unnatürlich – warum nicht gleich die richtige Zeichenfolge verwenden?

Das obige ist der detaillierte Inhalt vonEntfernen Sie dieselben Elemente aus zwei Arrays Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen