kesilapan. Mengembalikan palsu jika ia mengandungi kepingan

王林
Lepaskan: 2024-02-12 16:36:05
ke hadapan
798 orang telah melayarinya

错误。如果包含切片,则返回 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{}))
}
Salin selepas log masuk

Kembali


equal: false
Salin selepas log masuk
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{}))
}
Salin selepas log masuk

Kembali


equal: true
Salin selepas log masuk

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

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!