Rumah  >  Artikel  >  pembangunan bahagian belakang  >  kesilapan. Mengembalikan palsu jika ia mengandungi kepingan

kesilapan. Mengembalikan palsu jika ia mengandungi kepingan

王林
王林ke hadapan
2024-02-12 16:36:05780semak imbas

错误。如果包含切片,则返回 false

Kandungan soalan

Ralat.Is nampaknya tidak berfungsi apabila saya mempunyai struktur ralat yang mengandungi kepingan bersarang di dalamnya:

package main

import (
    "errors"
    "fmt"
    "os"
)

type Response struct {
    Details []string
}

type ErrResponseError struct {
    Response Response
}

func (err ErrResponseError) Error() string {
    return "response error"
}

func main() {
    err := ErrResponseError{}
    fmt.Fprintf(os.Stdout, "equal: %v", errors.Is(err, ErrResponseError{}))
}

Kembali


equal: false
package main

import (
    "errors"
    "fmt"
    "os"
)

type Response struct {
    Details string // Changed this line
}

type ErrResponseError struct {
    Response Response
}

func (err ErrResponseError) Error() string {
    return "response error"
}

func main() {
    err := ErrResponseError{}
    fmt.Fprintf(os.Stdout, "equal: %v", errors.Is(err, ErrResponseError{}))
}

Kembali


equal: true

................................................. ............... ................................... ................................... ................ ................................................... ....... .............................................. ................................... ................ ................................................... .....

Penyelesaian

Dari dokumentasi:

Jadi, anda boleh melakukannya dengan menulis kaedah Is untuk membandingkan dua keping.

Algoritma perbandingan ralat lalai menyemak sama ada ralat adalah sama dengan sasaran. Memandangkan ralat anda mengandungi kepingan, ia tidak dapat dibandingkan.

Atas ialah kandungan terperinci kesilapan. Mengembalikan palsu jika ia mengandungi kepingan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam