猿问

如何从不在切片 B 中的切片 A 中获取值?

我有两个切片A := []string{"a","b","c","d"}和B := []string{"a","b"}.


如何["c","d"] 从切片 A 中获取?


我尝试了各种方法,但仍然没有得到我想要的结果。谢谢


package main


import (

    "fmt"

)



func main() {

    A := []string{"a","b","c","d"}

    B := []string{"a","b"}

    temp := []string{}

    

    for _, a := range A {

        for _, b := range B {

            if a == b {

                fmt.Printf("%s == %s\n", a,b)

                temp = append(temp, a)

                break

            }       

        }

        

    }

    

}


Smart猫小萌
浏览 132回答 3
3回答

翻过高山走不出你

你几乎明白了。请注意是否a在B. 如果a在 中找不到B,则添加a到结果中。func main() {    A := []string{"a", "b", "c", "d"}    B := []string{"a", "b"}    var result []string    for _, a := range A {        found := false        for _, b := range B {            if a == b {                found = true                break            }        }        if !found {            result = append(result, a)        }    }    fmt.Println(result)}

喵喔喔

func main() {    A := []string{"a", "b", "c", "d"}    B := []string{"a", "b"}    var outterLoop, innerLoop []string    if len(A) > len(B) {        outterLoop = A        innerLoop = B    } else {        outterLoop = B        innerLoop = A    }    temp := []string{}    for _, b := range outterLoop {        found := false        for _, a := range innerLoop {            if a == b {                found = true            }        }        if !found {            temp = append(temp, b)        }    }    for _, t := range temp {        println(t)    }}

明月笑刀无情

package mainimport "fmt"func find(a, b []string) []string {    bm := make(map[string]struct{}, len(b))    ok := false    for i := range b {        if _, ok = bm[b[i]]; !ok {            bm[b[i]] = struct{}{}        }    }    res := make([]string, 0)    for i := range a {        if _, ok = bm[a[i]]; !ok {            res = append(res, a[i])        }    }    return res}func main() {    a := []string{"a", "b", "c", "d"}    b := []string{"a", "b"}    t := find(a, b)    fmt.Println(t)}
随时随地看视频慕课网APP

相关分类

Go
我要回答