GO_INTERVIEW_LIB Telegram 649
🤨 Как сравнить два слайса в Go?
В Go для сравнения двух слайсов нужно вручную или с помощью готовых решений проверить их содержимое, так как оператор == не поддерживает сравнение слайсов

1️⃣ Через циклы
func slicesEqual(a, b []int) bool {
if len(a) != len(b) {
return false
}
for i := range a {
if a[i] != b[i] {
return false
}
}
return true
}


2️⃣ Библиотека reflect
import "reflect"

func slicesEqual(a, b []int) bool {
return reflect.DeepEqual(a, b)
}


3️⃣Использование cmp из google/go-cmp
Для более сложных сравнений, например, со структурой или кастомными правилами:
import (
"fmt"
"github.com/google/go-cmp/cmp"
)

func main() {
slice1 := []int{1, 2, 3}
slice2 := []int{1, 2, 3}

fmt.Println(cmp.Equal(slice1, slice2)) // true
}


4️⃣Сравнение через сериализацию (для сложных данных)
import (
"encoding/json"
"log"
)

func slicesEqualJSON(a, b []int) bool {
aJSON, _ := json.Marshal(a)
bJSON, _ := json.Marshal(b)
return string(aJSON) == string(bJSON)
}
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/go_interview_lib/649
Create:
Last Update:

🤨 Как сравнить два слайса в Go?
В Go для сравнения двух слайсов нужно вручную или с помощью готовых решений проверить их содержимое, так как оператор == не поддерживает сравнение слайсов

1️⃣ Через циклы

func slicesEqual(a, b []int) bool {
if len(a) != len(b) {
return false
}
for i := range a {
if a[i] != b[i] {
return false
}
}
return true
}


2️⃣ Библиотека reflect
import "reflect"

func slicesEqual(a, b []int) bool {
return reflect.DeepEqual(a, b)
}


3️⃣Использование cmp из google/go-cmp
Для более сложных сравнений, например, со структурой или кастомными правилами:
import (
"fmt"
"github.com/google/go-cmp/cmp"
)

func main() {
slice1 := []int{1, 2, 3}
slice2 := []int{1, 2, 3}

fmt.Println(cmp.Equal(slice1, slice2)) // true
}


4️⃣Сравнение через сериализацию (для сложных данных)
import (
"encoding/json"
"log"
)

func slicesEqualJSON(a, b []int) bool {
aJSON, _ := json.Marshal(a)
bJSON, _ := json.Marshal(b)
return string(aJSON) == string(bJSON)
}

BY Библиотека Go для собеса | вопросы с собеседований


Share with your friend now:
tgoop.com/go_interview_lib/649

View MORE
Open in Telegram


Telegram News

Date: |

6How to manage your Telegram channel? Channel login must contain 5-32 characters Clear The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians.
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American