0
比方說,我有兩個字符串數組。如何在Golang中異或兩個字符串數組?
A = [ 「AB」, 「CD」, 「EF」, 「GH」]
B = [ 「EF」, 「GH」]
我想要做的C = A^B
其中C = [「AB」,「CD」]
我知道Golang允許XOR字節明智的,但我還沒有看到文檔中字符串數組任何東西。
我該怎麼做呢?也許有人已經爲此做了一個實用程序?
比方說,我有兩個字符串數組。如何在Golang中異或兩個字符串數組?
A = [ 「AB」, 「CD」, 「EF」, 「GH」]
B = [ 「EF」, 「GH」]
我想要做的C = A^B
其中C = [「AB」,「CD」]
我知道Golang允許XOR字節明智的,但我還沒有看到文檔中字符串數組任何東西。
我該怎麼做呢?也許有人已經爲此做了一個實用程序?
這似乎並不喜歡的事,會去在Go標準庫,但這裏的一些代碼,做的伎倆:
package main
import (
"fmt"
)
func main() {
A := []string{"ab", "cd", "ef", "gh"}
B := []string{"ef", "gh"}
fmt.Println(xor(A,B))
}
func xor(list1, list2 []string) []string {
set1 := make(map[string]bool)
for _, s := range list1 {
set1[s] = true
}
set2 := make(map[string]bool)
for _, s := range list2 {
set2[s] = true
}
var c []string
for _, s := range list1 {
if !set2[s] {
c = append(c, s)
}
}
for _, s := range list2 {
if !set1[s] {
c = append(c, s)
}
}
return c
}
每個字符串中是[符文](https://golang.org/ref/spec#Rune_literals),它只是一個** int **的別名,你所要做的就是將它們轉換爲無符號整型並進行異或操作^ –